ID3D10Device1
COM公式ドキュメント
デバイスインターフェイスは、Direct3D 10.1 の仮想アダプターを表します。レンダリングの実行や Direct3D リソースの作成に使用されます。
解説(Remarks)
デバイスは D3D10CreateDevice1 を使用して作成します。
このメソッドには Windows Vista Service Pack 1 が必要です。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
リソース内のデータにアクセスするためのシェーダーリソースビューを作成します。(ID3D10Device1.CreateShaderResourceView1)
| pResource | ID3D10Resource* | in | シェーダーへの入力となる リソース へのポインター。このリソースは D3D10_BIND_SHADER_RESOURCE フラグを指定して作成されている必要があります。 |
| pDesc | D3D10_SHADER_RESOURCE_VIEW_DESC1* | inoptional | シェーダーリソースビューの記述へのポインター(D3D10_SHADER_RESOURCE_VIEW_DESC1 を参照)。このパラメーターに NULL を設定すると、リソース全体にアクセスするビューが(リソースの作成時に使用したフォーマットで)作成されます。 |
| ppSRView | ID3D10ShaderResourceView1** | outoptional | シェーダーリソースビューへのポインターのアドレス(ID3D10ShaderResourceView1 インターフェイス を参照)。このパラメーターに NULL を設定すると、他の入力パラメーターの検証を行います(他の入力パラメーターが検証を通過した場合、メソッドは S_FALSE を返します)。 |
戻り値
型: HRESULT
このメソッドは、次の Direct3D 10 リターンコード のいずれかを返します。
解説(Remarks)
リソースは 1 つ以上の サブリソース で構成され、ビューはパイプラインへのアクセスを許可するサブリソースを指定します。さらに、各リソースはビューを使用してパイプラインにバインドされます。シェーダーリソースビューは、次の API メソッドを使用して、任意のバッファーまたはテクスチャリソースを シェーダーステージ にバインドするように設計されています: VSSetShaderResources、GSSetShaderResources、PSSetShaderResources。
ビューは完全に型付けされているため、型なしリソースはパイプラインにバインドされると完全に型付けされます。
このメソッドには Windows Vista Service Pack 1 が必要です。
出力マージャーステージのブレンドステートをカプセル化するブレンドステートオブジェクトを作成します。(ID3D10Device1.CreateBlendState1)
| pBlendStateDesc | D3D10_BLEND_DESC1* | in | ブレンドステートの記述へのポインター(D3D10_BLEND_DESC1 を参照)。 |
| ppBlendState | ID3D10BlendState1** | outoptional | 作成されたブレンドステートオブジェクトへのポインターのアドレス(ID3D10BlendState1 インターフェイス を参照)。 |
戻り値
型: HRESULT
このメソッドは、次の Direct3D 10 リターンコード のいずれかを返します。
解説(Remarks)
アプリケーションは、最大 4096 個の一意なブレンドステートオブジェクトを作成できます。オブジェクトが作成されるたびに、ランタイムは以前のオブジェクトが同じステートを持っているかどうかを確認します。そのような以前のオブジェクトが存在する場合、ランタイムは重複するオブジェクトを作成する代わりに、以前のインスタンスへのポインターを返します。
このメソッドには Windows Vista Service Pack 1 が必要です。
ハードウェアデバイスの機能レベルを取得します。(ID3D10Device1.GetFeatureLevel)
戻り値
機能レベル(D3D10_FEATURE_LEVEL1 を参照)。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID3D10Device1 "{9B7E4C8F-342C-4106-A19F-4F2704F689F0}" #usecom global ID3D10Device1 IID_ID3D10Device1 "{}" #comfunc global ID3D10Device1_CreateShaderResourceView1 98 sptr,var,sptr #comfunc global ID3D10Device1_CreateBlendState1 99 var,sptr #comfunc global ID3D10Device1_GetFeatureLevel 100 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID3D10Device1 "{9B7E4C8F-342C-4106-A19F-4F2704F689F0}" #usecom global ID3D10Device1 IID_ID3D10Device1 "{}" #comfunc global ID3D10Device1_CreateShaderResourceView1 98 sptr,sptr,sptr #comfunc global ID3D10Device1_CreateBlendState1 99 sptr,sptr #comfunc global ID3D10Device1_GetFeatureLevel 100 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。