Méthode IHolographicQuadLayerInterop::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 toujours 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 de renoncer au contrôle de cette ressource au système jusqu’à ce qu’elle soit réacquisie par votre application à l’aide de AcquireDirect3D12BufferResourceWithTimeout. Le système est propriétaire de la mémoire tampon jusqu’à ce qu’elle ne soit plus nécessaire pour présenter la couche quad. 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 une nouvelle mise à jour pour la couche quad, vous devez créer une ressource et l’ajouter à la file d’attente de la 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 autre que 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. Quand 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. La ressource sera dans l’état D3D12_RESOURCE_STATE_COMMON lors de son acquisition.
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.
duration
Type : UINT64
Si ce paramètre est défini, 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 en unités de 100 nanosecondes, similaire au 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).
Lorsqu’aucune valeur de délai d’expiration n’est spécifiée, si cette méthode est appelé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.
Configuration requise
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 |