次の方法で共有


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

こちらもご覧ください

IDirect3DResource9