シェーダー インターフェイス
ここでは、以下のシェーダー インターフェイスについて説明します。
これらのシェーダー インターフェイスはそれぞれ、コンパイル済みシェーダーを管理します。インターフェイスはシェーダーがコンパイルされるときに作成され、その後コンパイル済みシェーダーにアクセスする必要のある各種 API に渡されます。たとえば、シェーダーをパイプライン ステージにバインドする場合、またはシェーダー署名を取得する場合などです。
パイプライン ステージのインターフェイス | 説明 |
---|---|
ID3D10GeometryShader インターフェイス | ジオメトリ シェーダーは、ジオメトリ シェーダー ステージにおける各プリミティブの処理を実装します。 |
ID3D10PixelShader インターフェイス | ピクセル シェーダーは、ピクセル シェーダー ステージにおける各ピクセルの処理を実装します。 |
ID3D10VertexShader インターフェイス | 頂点シェーダーは、頂点シェーダー ステージにおける各頂点の処理を実装します。 |
シェーダー リフレクション インターフェイスを使用すると、アプリケーションは設計時やオーサリング時にシェーダーの内容を検査できます。シェーダー リフレクションは実行時における変数の設定には有効ではありません。シェーダー リフレクションはシェーダー データのミラーにすぎず、データ設定に必要なメソッドをサポートしていないためです。
シェーダー リフレクションのインターフェイス | 説明 |
---|---|
ID3D10ShaderReflection インターフェイス | オーサリング時にコンパイル済みシェーダーから情報を読み取るための COM インターフェイスです。 |
ID3D10ShaderReflectionConstantBuffer インターフェイス | シェーダー リフレクションの定数バッファー インターフェイスを取得するためのヘルパー インターフェイスです。 |
ID3D10ShaderReflectionType インターフェイス | シェーダー リフレクション タイプのインターフェイスを取得するためのヘルパー インターフェイスです。 |
ID3D10ShaderReflectionVariable インターフェイス | シェーダー リフレクション変数のインターフェイスを取得するためのヘルパー インターフェイスです。 |
ID3D10ShaderResourceView インターフェイス | シェーダー リソース ビューから情報を読み込むためのシェーダー リフレクション インターフェイスです。 |
シェーダー リフレクション API は 1 つの COM シェーダー リフレクション インターフェイス (ID3D10ShaderReflection インターフェイス) と、複数の非 COM ヘルパー インターフェイス (その他のインターフェイス) を実装します。ID3D10ShaderReflection インターフェイス は、シェーダー リフレクション オブジェクトの作成時に作成されます。これは標準の COM ルールに準拠します。つまり、インターフェイスを作成すると、リファレンス カウントが 1 つ加算され、不要になったインターフェイスは解放する必要があります。その他のシェーダー リフレクション インターフェイスは、IUnknown を継承しないヘルパー インターフェイスです。したがって、作成されてもリファレンス カウントは変わりません。また、その使用を終了しても破棄する必要はありません。