Share via


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

Die AcquireDirect3D12BufferResourceWithTimeout-Methode übergibt den Besitz einer Direct3D 12-Back-Pufferressource von der Plattform an Ihre Anwendung und wartet auf die im Argument duration angegebene Zeitspanne, bis die Ressource verfügbar wird. Wenn Ihre Anwendung bereits die Kontrolle über die Ressource besitzt, wird der Erwerb weiterhin als erfolgreich angesehen, und die Methode gibt sofort zurück.

Nach dem Commit einer Ressource für einen HolographicFrame durch Aufrufen von IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource sollte Ihre Anwendung die Kontrolle über diese Ressource in Betracht ziehen, bis sie von Ihrer Anwendung mithilfe von AcquireDirect3D12BufferResourceWithTimeout zurückgegeben wird. Das System besitzt den Puffer, bis er nicht mehr für die Darstellung der Vierfachebene benötigt wird. Um festzustellen, ob das System die Kontrolle über den Puffer 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 Updates für die quad-Ebene zu beginnen, sollten Sie eine neue Ressource erstellen und der Pufferwarteschlange hinzufügen oder die Warteschlangengröße einschränken, indem Sie auf die Verfügbarkeit eines Puffers warten.

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

Syntax

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

Parameter

pResourceToAcquire

Typ: ID3D12Resource*

Die direct3D 12-Ressource, die abgerufen werden soll. Die Ressource befindet sich beim Erwerb im D3D12_RESOURCE_STATE_COMMON Zustand.

pCommandQueue

Typ: ID3D12CommandQueue*

Die Direct3D 12-Befehlswarteschlange, die zum Übergang des Zustands dieser Ressource beim Abrufen dieser Ressource für Ihre Anwendung verwendet werden soll.

duration

Typ: UINT64

Wenn dieser Parameter 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 befindet sich in Einheiten von 100 Nanosekunden, ähnlich dem Feld TimeSpan.Duration .

Rückgabewert

S_OK bei erfolgreicher Ausführung gibt andernfalls einen HRESULT-Fehlercode zurück, der den Grund für den Fehler angibt. Weitere Informationen finden Sie unter COM-Fehlercodes (UI, Audio, DirectX, Codec)..

Wenn kein Timeoutwert angegeben wird und diese Methode aufgerufen wird und der Puffer nicht zum Abrufen bereit ist, schlägt der Methodenaufruf mit dem Fehlercode E_NOTREADY fehl.

Anforderungen

   
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

Weitere Informationen

AcquireDirect3D12BufferResource