ID3D11Device::CreateGeometryShader
ジオメトリ シェーダーを作成します。
HRESULT
CreateGeometryShader(
const void *pShaderBytecode,
SIZE_T BytecodeLength,
ID3D11ClassLinkage *pClassLinkage,
ID3D11GeometryShader **ppGeometryShader
);
パラメータ
- pShaderBytecode
コンパイル済みシェーダーへのポインターです。 - BytecodeLength
コンパイル済みのジオメトリ シェーダーのサイズです。 - pClassLinkage
クラス リンク インターフェイスへのポインターです (「ID3D11ClassLinkage」を参照してください)。この値には NULL を指定できます。 - ppGeometryShader
ID3D11GeometryShader インターフェイスへのポインターのアドレスです。この値が NULL の場合は、その他のパラメーターがすべて検証され、すべてのパラメーターが検証で正常であった場合、この API は S_OK ではなく S_FALSE を返します。
戻り値
このメソッドは、「Direct3D 11 のリターン コード」のいずれかを返します。
解説
作成後に ID3D11DeviceContext::GSSetShader を呼び出すことによって、作成したシェーダーをデバイスに設定できます。
例
使用例
ID3D11GeometryShader* g_pGeometryShader11 = NULL; ID3DBlob* pGeometryShaderBuffer = NULL; ID3DBlob * errorbuffer = NULL; D3DX11CompileFromFile( str, NULL, NULL, "GS", "gs_4_0", dwShaderFlags, 0, NULL, &pGeometryShaderBuffer, &errorbuffer, NULL ); pd3dDevice->CreateGeometryShader( pGeometryShaderBuffer->GetBufferPointer(), pGeometryShaderBuffer->GetBufferSize(), NULL, &g_pGeometryShader11 );
要件
ヘッダー: D3D11.h 宣言
ライブラリ: D3D11.lib 内容