ID3D10Texture3D
COM公式ドキュメント
3D テクスチャインターフェイスは、構造化されたメモリであるテクセルデータにアクセスします。(ID3D10Texture3D)
解説(Remarks)
空の Texture3D リソースを作成するには、ID3D10Device::CreateTexture3D を呼び出します。テクスチャの作成と読み込みの詳細については、Creating Texture Resources を参照してください。
テクスチャをパイプラインに直接バインドすることはできません。代わりに、ビューを作成してバインドする必要があります。ビューを使用すると、一定の制約の範囲内で実行時にテクスチャデータを解釈できます。テクスチャをレンダーターゲットまたは深度ステンシルリソースとして使用するには、それぞれ ID3D10Device::CreateRenderTargetView と ID3D10Device::CreateDepthStencilView を呼び出します。テクスチャをシェーダーへの入力として使用するには、ID3D10Device::CreateShaderResourceView を呼び出してビューを作成します。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
サブリソースに含まれるデータへのポインターを取得し、そのサブリソースへの GPU アクセスを拒否します。(ID3D10Texture3D.Map)
| Subresource | DWORD | in | サブリソースのインデックス番号。詳細については D3D10CalcSubresource を参照してください。 |
| MapType | D3D10_MAP | in | リソースに対する CPU の読み取りおよび書き込み権限を指定します。指定可能な値については D3D10_MAP を参照してください。 |
| MapFlags | DWORD | in | GPU がビジー状態のときに CPU が行うべき動作を指定するフラグ。このフラグは省略可能です。 |
| pMappedTex3D | D3D10_MAPPED_TEXTURE3D* | out | この関数によって設定される構造体(D3D10_MAPPED_TEXTURE3D)へのポインター。この構造体にはリソースデータへのポインターが含まれます。 |
戻り値
Type: HRESULT
この関数が成功した場合、S_OK を返します。すべての Map メソッドは同一の戻り値と動作上の制約を持ちます。これらは ID3D10Texture1D::Map の解説セクションに記載されています。
ID3D10Texture3D::Map によって取得したリソースへのポインターを無効化し、リソースへの GPU アクセスを再び有効にします。
| Subresource | DWORD | in | アンマップするサブリソース。詳細については D3D10CalcSubresource を参照してください。 |
解説(Remarks)
Unmap を呼び出す前に、サブリソースがマップされている必要があります。
|
Direct3D 9 と Direct3D 10 の違い:
Direct3D 10 の Unmap() は、Direct3D 9 のリソースの Unlock() に相当します。 |
テクスチャリソースのプロパティを取得します。(ID3D10Texture3D.GetDesc)
| pDesc | D3D10_TEXTURE3D_DESC* | out | リソースの記述(D3D10_TEXTURE3D_DESC を参照)へのポインター。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID3D10Texture3D "{9B7E4C05-342C-4106-A19F-4F2704F689F0}" #usecom global ID3D10Texture3D IID_ID3D10Texture3D "{}" #comfunc global ID3D10Texture3D_Map 10 int,int,int,var #comfunc global ID3D10Texture3D_Unmap 11 int #comfunc global ID3D10Texture3D_GetDesc 12 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ID3D10Texture3D "{9B7E4C05-342C-4106-A19F-4F2704F689F0}" #usecom global ID3D10Texture3D IID_ID3D10Texture3D "{}" #comfunc global ID3D10Texture3D_Map 10 int,int,int,sptr #comfunc global ID3D10Texture3D_Unmap 11 int #comfunc global ID3D10Texture3D_GetDesc 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。