Méthode IDXGIKeyedMutex ::ReleaseSync (dxgi.h)
À l’aide d’une clé, libère un accès de rendu exclusif à une ressource partagée.
Syntaxe
HRESULT ReleaseSync(
UINT64 Key
);
Paramètres
Key
Type : UINT64
Valeur qui indique l’appareil auquel accorder l’accès. Cette méthode réussit lorsque l’appareil qui possède actuellement la surface appelle la méthode ReleaseSync à l’aide de la même valeur. Cette valeur peut être n’importe quelle valeur UINT64.
Valeur retournée
Type : HRESULT
Retourne S_OK en cas de réussite.
Si l’appareil a tenté de libérer un mutex à clé non valide ou détenu par l’appareil, ReleaseSync retourne E_FAIL.
Remarques
La méthode ReleaseSync libère un verrou sur une surface partagée entre plusieurs appareils. Cette méthode utilise une clé pour déterminer quel appareil dispose actuellement d’un accès exclusif à la surface.
Lorsqu’une surface est créée à l’aide de la valeur D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX de l’énumération D3D10_RESOURCE_MISC_FLAG , vous devez appeler la méthode IDXGIKeyedMutex ::AcquireSync avant d’effectuer le rendu à la surface. Vous devez appeler la méthode ReleaseSync lorsque vous avez terminé le rendu sur une surface.
Après avoir appelé la méthode ReleaseSync , la ressource partagée n’est pas définie à partir du pipeline de rendu.
Pour acquérir une référence à l’objet mutex à clé d’une ressource partagée, appelez la méthode QueryInterface de la ressource et transmettez l’UUID de l’interface IDXGIKeyedMutex . Pour plus d’informations sur l’acquisition de cette référence, consultez l’exemple de code suivant.
Exemples
Acquisition d’un mutex à clé
L’exemple de code suivant montre comment acquérir un verrou pour une ressource partagée et comment spécifier une clé lors de la mise en production.
// pDesc has already been set up with texture description.
pDesc.MiscFlags = D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX;
// Create a shared texture resource.
pD3D10DeviceD->CreateTexture2D(pDesc, NULL, pD3D10Texture);
// Acquire a reference to the keyed mutex.
pD3D10Texture->QueryInterface(_uuidof(IDXGIKeyedMutex), pDXGIKeyedMutex);
// Acquire a lock to the resource.
pDXGIKeyedMutex->AcquireSync(0, INFINITE);
// Release the lock and specify a key.
pDXGIKeyedMutex->ReleaseSync(1);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | dxgi.h |
Bibliothèque | DXGI.lib |