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