ID3D11Device::CreateVertexShader メソッド (d3d11.h)
コンパイルされたシェーダーから頂点シェーダー オブジェクトを作成します。
構文
HRESULT CreateVertexShader(
[in] const void *pShaderBytecode,
[in] SIZE_T BytecodeLength,
[in, optional] ID3D11ClassLinkage *pClassLinkage,
[out, optional] ID3D11VertexShader **ppVertexShader
);
パラメーター
[in] pShaderBytecode
型: const void*
コンパイルされたシェーダーへのポインター。
[in] BytecodeLength
種類: SIZE_T
コンパイルされた頂点シェーダーのサイズ。
[in, optional] pClassLinkage
種類: ID3D11ClassLinkage*
クラス リンケージ インターフェイスへのポインター ( ID3D11ClassLinkage を参照)。値には NULL を指定できます。
[out, optional] ppVertexShader
種類: ID3D11VertexShader**
ID3D11VertexShader インターフェイスへのポインターのアドレス。 これが NULL の場合、他のすべてのパラメーターが検証され、すべてのパラメーターが検証に合格すると、この API は S_OK ではなく S_FALSEを返します。
戻り値
型: HRESULT
このメソッドは、 Direct3D 11 リターン コードのいずれかを返します。
解説
Windows 8 以降で使用できる Direct3D 11.1 ランタイムは、 CreateVertexShader に次の新機能を提供します。
次のシェーダー モデル 5.0 の手順は、Direct3D 11.0 ランタイムのピクセル シェーダーとコンピューティング シェーダーでのみ使用できます。 Direct3D 11.1 ランタイムの場合、順序なしのアクセス ビュー (UAV) はすべてのシェーダー ステージで使用できるため、すべてのシェーダー ステージでこれらの手順を使用できます。
したがって、頂点シェーダーで次のシェーダー モデル 5.0 命令を使用すると、コンパイルされた頂点シェーダーを pShaderBytecode に正常に渡すことができます。 つまり、 CreateVertexShader の呼び出しは成功します。
コンパイル済みシェーダーを pShaderBytecode に渡し、すべてのシェーダー ステージで UAV をサポートしていないデバイスで次のいずれかの手順を使用する場合 (すべてのシェーダー ステージで UAV をサポートするために実装されていない既存のドライバーを含む) 、CreateVertexShader は失敗します。 ハードウェアでサポートされている UAV スロットのセットを超えて UAV スロットをシェーダーが使用しようとすると、CreateVertexShader も失敗します。
- dcl_uav_typed
- dcl_uav_raw
- dcl_uav_structured
- ld_raw
- ld_structured
- ld_uav_typed
- store_raw
- store_structured
- store_uav_typed
- sync_uglobal
- すべてのアトミックと即時アトミック ( たとえば、atomic_and と imm_atomic_and)
必要条件
対象プラットフォーム | Windows |
ヘッダー | d3d11.h |
Library | D3D11.lib |