Метод 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 |