ID3DXEffectCompiler::SetLiteral メソッド
パラメーターのリテラルの状態を切り替えます。 リテラル パラメーターには、効果の有効期間中に変更されない値があります。
構文
HRESULT SetLiteral(
[in] D3DXHANDLE hParameter,
[in] BOOL Literal
);
パラメーター
-
hParameter [in]
-
型: D3DXHANDLE
パラメーターの一意識別子。 「ハンドル (Direct3D 9)」を参照してください。
-
リテラル [in]
-
種類: BOOL
パラメーターをリテラルにするには TRUE に設定し、シェーダーの有効期間中にパラメーターが値を変更できる場合は FALSE に設定します。
戻り値
種類: HRESULT
メソッドが成功した場合、戻り値は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);
}
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
関連項目