Share via


IHolographicCameraInterop::AcquireDirect3D12BufferResourceWithTimeout-Methode (windows.graphics.holographic.interop.h)

Die AcquireDirect3D12BufferResourceWithTimeout-Methode übergibt den Besitz einer Direct3D 12-Backpufferressource von der Plattform auf Ihre Anwendung und wartet bis zu der Zeit, die durch das Argument duration angegeben wird, bis die Ressource verfügbar wird. Wenn Ihre Anwendung bereits die Kontrolle über die Ressource besitzt, wird der Erwerb als erfolgreich angesehen, und die Methode wird sofort zurückgegeben.

Nach dem Committen einer Ressource in einen HolographicFrame durch Aufrufen von IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource sollte Ihre Anwendung die Kontrolle über diese Ressource als Besitzer des Systems in Betracht ziehen, bis sie von Ihrer Anwendung mithilfe von AcquireDirect3D12BufferResourceWithTimeout erneut erworben wird. Das System besitzt den Puffer, bis der Frame, für den der Puffer committet wurde, durch die Präsentationswarteschlange führt. Um zu bestimmen, ob das System die Steuerung des Puffers aufgegeben hat, rufen Sie AcquireDirect3D12BufferResource oder AcquireDirect3D12BufferResourceWithTimeout auf. Wenn der Puffer nicht abgerufen werden kann, wenn Ihre Anwendung bereit ist, mit dem Rendern eines neuen HolographicFrames zu beginnen, sollten Sie eine neue Ressource erstellen und der Pufferwarteschlange hinzufügen oder die Warteschlangengröße einschränken, indem Sie darauf warten, dass ein Puffer verfügbar wird.

Diese Methode akzeptiert einen optionalen Timeoutwert. Wenn im Duration-Argument ein Wert ungleich null vorhanden ist, wartet das System auf die Anzahl von Millisekunden, bis der Puffer verfügbar ist. Das Standardverhalten besteht darin, nicht zu warten. Wenn ein Timeoutwert von null angegeben wird und der Puffer nicht abgerufen werden kann, schlägt der Methodenaufruf mit dem Fehlercode E_NOTREADY fehl.

Syntax

HRESULT AcquireDirect3D12BufferResourceWithTimeout(
  ID3D12Resource     *pResourceToAcquire,
  ID3D12CommandQueue *pCommandQueue,
  UINT64             duration
);

Parameter

pResourceToAcquire

Typ: ID3D12Resource*

Die zu erwerbende Direct3D 12-Ressource.

pCommandQueue

Typ: ID3D12CommandQueue*

Die Direct3D 12-Befehlswarteschlange, die für den Übergang des Zustands dieser Ressource verwendet werden soll, wenn sie für Ihre Anwendung abgerufen wird. Die Ressource befindet sich beim Erwerb im D3D12_RESOURCE_STATE_COMMON Zustand.

duration

Typ: UINT64

Wenn dieser Parameter auf einen Wert ungleich 0 festgelegt ist, wartet der Aufruf auf diese Zeit, bis der Puffer abgerufen wird. Wenn der Timeoutzeitraum verstrichen ist, bevor der Puffer abgerufen werden kann, schlägt die Methode mit dem Fehlercode E_TIMEOUT fehl. Dieser Parameter wird in Einheiten von 100 Nanosekunden angegeben, ähnlich dem Feld TimeSpan.Duration .

Rückgabewert

S_OK , wenn erfolgreich, gibt andernfalls einen HRESULT-Fehlercode zurück, der den Grund für den Fehler angibt. Siehe auch COM-Fehlercodes (UI, Audio, DirectX, Codec).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 2004 (10.0; Build 19041)
Unterstützte Mindestversion (Server) Windows Server, Version 2004 (10.0; Build 19041)
Kopfzeile windows.graphics.holographic.interop.h