次の方法で共有


ID3DXEffectCompiler::SetLiteral

パラメーターのリテラル ステータスを切り替えます。リテラル パラメーターの値は、エフェクトの有効期間中は変更されません。

HRESULT 
SetLiteral(
  D3DXHANDLE hParameter,
  BOOL Literal
);

パラメータ

  • hParameter
    パラメーターの一意の識別子です。「ハンドル (Direct3D 9)」を参照してください。
  • Literal
    TRUE に設定すると、パラメーターがリテラルにまります。シェーダーの有効期間中にパラメーターが値を変化させる場合は FALSE に設定します。

戻り値

メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、D3DERR_INVALIDCALL を返します。

解説 

このメソッドは、パラメーターをリテラルにしたり、リテラル以外にしたりします。パラメーターの値を変更するには、ID3DXBaseEffect::SetBool または ID3DXBaseEffect::SetValue などのメソッドを使用します。

この関数は、エフェクトがコンパイルされる前に呼び出される必要があります。以下に、この関数の使用例を示します。

     LPD3DXEFFECTCOMPILER pEffectCompiler;     char errors[1000];     HRESULT hr;          hr = D3DXCreateEffectCompilerFromFile("shader.fx",                                           NULL, NULL, 0,                                           &pEffectCompiler,                                            &errors);          //In the fx file, literalInt is declared as an int.     //By calling this function, the compiler will treat     //it as a literal (i.e. #define)     hr = pEffectCompiler->SetLiteral("literalInt", TRUE);          //create ten different variations of the same effect     LPD3DXBUFFER pEffects[10];     LPD3DXBUFFER pErrors;     for(int i = 0; i < 10; ++i)     {      hr = pEffectCompiler->SetInt("literalInt", i);           hr = pEffectCompiler->CompileEffect(0, &pEffects[i], &pErrors);     } 

要件

ヘッダー: D3DX9Shader.h 宣言

ライブラリ: D3dx9.lib 内容

関連項目

使用法とリテラル (Direct3D 9), ID3DXEffectCompiler::GetLiteral