IDirect3DResource9::SetPrivateData
Direct3D ではなくアプリケーションによって使用されるリソースとデータを関連付けます。データは値によって渡され、単一のリソースに複数セットのデータを関連付けることができます。
HRESULT
SetPrivateData(
REFGUID refguid,
CONST void * pData,
DWORD SizeOfData,
DWORD Flags
);
パラメータ
- refguid
設定対象のプライベート データを指すグローバル一意識別子への参照。 - pData
リソースと関連付けるデータが含まれるバッファーへのポインター。 - SizeOfData
pData によって示されるバッファーのサイズ (バイト単位)。 - Flags
渡されるデータの型を示す値、またはリソースの変更時にデータを無効化する必要があることをアプリケーションに示す値。- (なし)
フラグを 1 つも指定しないと、バッファー内のデータを格納するためのメモリーが割り当てられ、そのデータが新しいバッファーにコピーされます。Direct3D によって割り当てられたバッファーは、必要に応じて自動的に解放されます。 - D3DSPD_IUNKNOWN
pData が示すデータは、IUnknown インターフェイスへのポインターです。SizeOfData には、IUnknown へのポインターのサイズ、つまり sizeof(IUnknown*) を設定する必要があります。Direct3D は、プライベート データの破棄時、pData を介して IUnknown を自動的に呼び出します。プライベート データは、IDirect3DResource9::SetPrivateData(同じ GUID を指定) を次に呼び出したとき、IDirect3DResource9::FreePrivateData を次に呼び出したとき、または IDirect3D9 オブジェクトが解放されたときに破棄されます。詳細については、「解説」を参照してください。
- (なし)
戻り値
メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL、E_OUTOFMEMORY
解説
Direct3D は、pData のメモリーを管理しません。このバッファーが動的に割り当てられた場合、そのメモリーを解放するのは呼び出し側アプリケーションの責任です。
要件
ヘッダー: D3D9.h 宣言
ライブラリ: D3D9.lib 内容