ID3D11On12Device2 ::UnwrapUnderlyingResource, méthode (d3d11on12.h)
Désencapsule un objet de ressource Direct3D 11 et le récupère en tant qu’objet de ressource Direct3D 12.
Syntaxe
HRESULT UnwrapUnderlyingResource(
[in] ID3D11Resource *pResource11,
[in] ID3D12CommandQueue *pCommandQueue,
[in] REFIID riid,
[out] void **ppvResource12
);
Paramètres
[in] pResource11
Type : ID3D11Resource*
Objet de ressource Direct3D 11 à désencapsuler.
[in] pCommandQueue
Type : ID3D12CommandQueue*
File d’attente de commandes sur laquelle votre application prévoit d’utiliser la ressource. Toute tâche en attente accédant à la ressource entraîne la planification des attentes de clôture sur cette file d’attente. Vous pouvez ensuite mettre en file d’attente d’autres travaux sur cette file d’attente, y compris un signal sur une clôture appartenant à l’appelant.
[in] riid
Type : REFIID
Référence à l’identificateur global unique (GUID) de l’interface que vous souhaitez retourner dans ppvResource12
.
[out] ppvResource12
Type : void**
Pointeur vers un bloc de mémoire qui reçoit un pointeur vers la ressource Direct3D 12.
Valeur retournée
Type : HRESULT
Si la fonction réussit, elle retourne S_OK. Sinon, il retourne un code d’erreurHRESULT.
Remarques
La ressource est transférée vers D3D12_RESOURCE_STATE_COMMON (si elle n’était pas déjà dans cet état), et les attentes appropriées sont insérées dans la file d’attente de commandes (pCommandQueue).
Il existe certaines restrictions sur ce qui peut être décompressé : aucune ressource mutex à clé, aucune ressource compatible GDI et aucune mémoire tampon. Toutefois, vous pouvez utiliser UnwrapUnderlyingResource pour désencapsuler les ressources créées via la méthode ID3D11On12Device ::CreateWrappedResource , ainsi que les ressources créées via ID3D11Device ::CreateTexture2D.
En général, vous devez renvoyer l’objet à Direct3D11on12 avant de l’utiliser à nouveau dans Direct3D 11 (voir ID3D11On12Device2 ::ReturnUnderlyingResource).
Vous pouvez également utiliser UnwrapUnderlyingResource pour désencapsuler une mémoire tampon de chaîne d’échange. Vous devez également retourner la ressource à Direct3D11on12 avant d’appeler Présent (ou d’utiliser la ressource).
Unwrapping d’une ressource extrait la ressource de la couche de traduction Direct3D11On12. Vous ne pouvez pas planifier l’utilisation de la couche de traduction (via l’une ou l’autre version de l’API) pendant que la ressource est extraite. Vérifiez de nouveau la ressource (également appelée retour de la ressource) avec ID3D11On12Device2 ::ReturnUnderlyingResource.
UnwrapUnderlyingResource ne vide pas et peut planifier le travail du GPU. Vous devez vider après l’appel de UnwrapUnderlyingResource si vous attendez de manière externe la fin.
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 | d3d11on12.h |
Bibliothèque | D3D11.lib |
DLL | D3D11.dll |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour