次の方法で共有


IDXGIKeyedMutex::ReleaseSync

キーを使用して、共有リソースへの排他レンダリング アクセスを解放します。

HRESULT 
ReleaseSync(
  UINT64 Key
);

パラメータ

  • Key
    アクセス可能とするデバイスを示す値。サーフェスを現在所有しているデバイスが、同じ値を使用して IDXGIKeyedMutex::ReleaseSync メソッドを呼び出すと、このメソッドが成功します。この値には任意の UINT64 値を指定できます。

戻り値

正常に実行された場合は S_OK を返し、失敗した場合はエラー コードを返します。

解説 

ReleaseSync メソッドは、複数のデバイスで共有しているサーフェスのロックを解放します。このメソッドでは、サーフェスに対する排他アクセス権を現在どのデバイスが持っているかを、キーを使用して判断します。

D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX フラグを使用して作成したサーフェスにレンダリングするには、まず AcquireSync メソッドを呼び出す必要があります。サーフェスへのレンダリングが終了した時点で ReleaseSync メソッドを呼び出す必要があります。

ReleaseSync メソッドを呼び出すと、共有リソースはレンダリング パイプラインに対して未設定になります。ロックを取得する場合は、リソースを再設定する必要があります。

共有リソースのキー付きミューテックス オブジェクトへの参照を取得するには、その共有リソースの QueryInterface メソッドを呼び出し、IDXGIKeyedMutex インターフェイスの UUID を渡します。詳細については、以下に示すコード例を参照してください。

  • キー付きミューテックスの取得
    次のコード例は、共有リソースに対するロックの取得方法とリソースを解放するときのキーの指定方法を示しています。

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

要件

ヘッダー: DXGI.h 宣言

ライブラリ: DXGI.lib 内容

関連項目

DXGI のインターフェイス | IDXGIKeyedMutex | IDXGIKeyedMutex::AcquireSync