次の方法で共有


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 内容

関連項目

ID3D11Device