次の方法で共有


IDirect3DResource9::SetPrivateData メソッド

IDirect3DResource9::SetPrivateData メソッド

Microsoft® Direct3D® ではなく、アプリケーションでの使用が意図されているリソースとデータを関連付ける。データは値で渡され、複数のデータ セットを単一のリソースと関連付けることができる。

構文

HRESULT SetPrivateData(      
    REFGUID refguid,
    const void *pData,
    DWORD SizeOfData,
    DWORD Flags
);

パラメータ

  • refguid
    [in] 設定するプライベート データを識別するグローバル一意識別子への参照 (C++) またはアドレス (C)。
  • pData
    [in] リソースに関連付けるデータが格納されているバッファへのポインタ。
  • SizeOfData
    [in] pData のバッファ サイズ (バイト単位)。
  • Flags
    [in] 渡されるデータ型を記述する値、またはリソースが変更された場合にデータを無効にする必要があることをアプリケーションに示す値。
    • (none)
      フラグを指定しない場合、Direct3D はバッファ内のデータを保持するメモリを割り当て、新しいバッファにデータをコピーする。Direct3D によって割り当てられるバッファは、適宜自動的に解放される。
    • D3DSPD_IUNKNOWN
      pData のデータは IUnknown インターフェイスへのポインタである。SizeOfData は、IUnknown インターフェイス (sizeof(IUnknown*)) へのポインタのサイズに設定する必要がある。Direct3D は pData を介して IUnknown::AddRef を、プライベート データが破棄される場合は IUnknown::Release を自動的に呼び出す。次に同じ GUIDIDirect3DResource9::SetPrivateData を呼び出すと、または次に IDirect3DResource9::FreePrivateData を呼び出すと、または IDirect3D9 オブジェクトが解放されると、プライベート データは破棄される。詳細情報は「注意」を参照すること。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_INVALIDCALL メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。
E_OUTOFMEMORY Direct3D が呼び出しを完了するための十分なメモリを割り当てることができなかった。

注意

Direct3D は pData でメモリを管理しない。このバッファが動的に割り当てられた場合、呼び出し側の責任でメモリを解放する。

参照

IDirect3DResource9::FreePrivateDataIDirect3DBaseTexture9::FreePrivateDataIDirect3DCubeTexture9::FreePrivateDataIDirect3DTexture9::FreePrivateDataIDirect3DVolumeTexture9::FreePrivateDataIDirect3DIndexBuffer9::FreePrivateDataIDirect3DVertexBuffer9::FreePrivateDataIDirect3DResource9::GetPrivateDataIDirect3DBaseTexture9::GetPrivateDataIDirect3DCubeTexture9::GetPrivateDataIDirect3DTexture9::GetPrivateDataIDirect3DVolumeTexture9::FreePrivateDataIDirect3DIndexBuffer9::FreePrivateDataIDirect3DVertexBuffer9::FreePrivateData