Partager via


Méthode IHolographicCameraInterop ::AcquireDirect3D12BufferResourceWithTimeout (windows.graphics.holographic.interop.h)

La méthode AcquireDirect3D12BufferResourceWithTimeout transfère la propriété d’une ressource de mémoire tampon de retour Direct3D 12 de la plateforme vers votre application, en attendant jusqu’à la durée indiquée par l’argument duration pour que la ressource devienne disponible. Si votre application possède déjà le contrôle de la ressource, l’acquisition est considérée comme un succès et la méthode retourne immédiatement.

Après avoir validé une ressource sur un HolographicFrame en appelant IHolographicQuadLayerUpdateParametersInterop ::CommitDirect3D12Resource, votre application doit envisager le contrôle de cette ressource comme appartenant au système jusqu’à ce qu’elle soit réacquis par votre application à l’aide de AcquireDirect3D12BufferResourceWithTimeout. Le système est propriétaire de la mémoire tampon jusqu’à ce que la trame pour laquelle la mémoire tampon a été validée passe par la file d’attente de présentation. Pour déterminer si le système a abandonné le contrôle de la mémoire tampon, appelez AcquireDirect3D12BufferResource ou AcquireDirect3D12BufferResourceWithTimeout. Si la mémoire tampon ne peut pas être acquise au moment où votre application est prête à commencer à afficher un nouvel HolographicFrame, vous devez créer une ressource et l’ajouter à la file d’attente de mémoire tampon, ou limiter la taille de la file d’attente en attendant qu’une mémoire tampon soit disponible.

Cette méthode accepte une valeur de délai d’expiration facultative. Lorsqu’une valeur différente de zéro est présente dans l’argument duration , le système attend autant de millisecondes que la mémoire tampon soit disponible. Le comportement par défaut est de ne pas attendre. Lorsqu’une valeur de délai d’expiration de zéro est spécifiée et que la mémoire tampon n’est pas prête à être acquise, l’appel de méthode échoue avec le code d’erreur E_NOTREADY.

Syntaxe

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

Paramètres

pResourceToAcquire

Type : ID3D12Resource*

Ressource Direct3D 12 à acquérir.

pCommandQueue

Type : ID3D12CommandQueue*

File d’attente de commandes Direct3D 12 à utiliser pour la transition de l’état de cette ressource lors de son acquisition pour votre application. La ressource sera dans l’état D3D12_RESOURCE_STATE_COMMON lors de son acquisition.

duration

Type : UINT64

Si ce paramètre est défini sur une valeur différente de zéro, l’appel attend la durée d’acquisition de la mémoire tampon. Si le délai d’expiration s’écoule avant que la mémoire tampon puisse être acquise, la méthode échoue avec le code d’erreur E_TIMEOUT. Ce paramètre est spécifié en unités de 100 nanosecondes, comme dans le champ TimeSpan.Duration .

Valeur retournée

S_OK en cas de réussite, retourne un code d’erreur HRESULT indiquant la raison de l’échec. Consultez également Codes d’erreur COM (interface utilisateur, audio, DirectX, codec).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 2004 (10.0 ; Build 19041)
Serveur minimal pris en charge Windows Server, version 2004 (10.0 ; Build 19041)
En-tête windows.graphics.holographic.interop.h