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