Поделиться через


Метод IDXGIKeyedMutex::ReleaseSync (dxgi.h)

С помощью ключа освобождает монопольный доступ отрисовки к общему ресурсу.

Синтаксис

HRESULT ReleaseSync(
  UINT64 Key
);

Параметры

Key

Тип: UINT64

Значение типа , указывающее, к какому устройству следует предоставить доступ. Этот метод завершается успешно, если устройство, которому в настоящее время принадлежит surface, вызывает метод ReleaseSync , используя то же значение. Это может быть любое значение UINT64.

Возвращаемое значение

Тип: HRESULT

В случае успешного выполнения возвращает S_OK.

Если устройство попыталось освободить мьютекс с ключом, который не является допустимым или принадлежит устройству, ReleaseSync возвращает E_FAIL.

Комментарии

Метод ReleaseSync освобождает блокировку поверхности, которая совместно используется несколькими устройствами. Этот метод использует ключ, чтобы определить, какое устройство в настоящее время имеет монопольный доступ к поверхности.

При создании поверхности с использованием D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX значения перечисления D3D10_RESOURCE_MISC_FLAG необходимо вызвать метод IDXGIKeyedMutex::AcquireSync перед отрисовкой на поверхности. При завершении отрисовки на поверхности необходимо вызвать метод ReleaseSync .

После вызова метода ReleaseSync общий ресурс будет удален из конвейера отрисовки.

Чтобы получить ссылку на объект мьютекса с ключом общего ресурса, вызовите метод QueryInterface ресурса и передайте UUID интерфейса IDXGIKeyedMutex . Дополнительные сведения о получении этой ссылки см. в следующем примере кода.

Примеры

Получение мьютекса с ключом

В следующем примере кода показано, как получить блокировку общего ресурса и указать ключ после освобождения.


// 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);

Требования

Требование Значение
Целевая платформа Windows
Header dxgi.h
Библиотека DXGI.lib

См. также раздел

Интерфейсы DXGI

IDXGIKeyedMutex

IDXGIKeyedMutex::AcquireSync