Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
An effect function is written in HLSL and is declared with the following syntax.
Syntax
ReturnType FunctionName ( [ ArgumentList ] )
{
- \[ *Statements* \]
};
Name | Description |
---|---|
ReturnType | Any HLSL type |
FunctionName | An ASCII string that uniquely identifies the name of the shader function. |
ArgumentList | One or more arguments, separated by commas (see Function Arguments (DirectX HLSL)). |
Statements | One or more statements (see Statements (DirectX HLSL)) that make up the body of the function. If a function is defined without a body, it is considered to be a prototype; and must be redefined with a body before use. |
An effect function may be a shader or it may simply be a function called by a shader. A function is uniquely identified by its name, the types of its parameters, and the target platform; therefore, functions can be overloaded. Any valid HLSL function should fit this format; for a more detailed list of syntax for HLSL functions, see Functions (DirectX HLSL).
Example
The BasicHLSL10 sample uses both a pixel shader and a vertex shader. The pixel shader function is called RenderScenePS and is shown below.
PS_OUTPUT RenderScenePS( VS_OUTPUT In,
uniform bool bTexture )
{
PS_OUTPUT Output;
// Lookup mesh texture and modulate it with diffuse
if( bTexture )
Output.RGBColor = g_MeshTexture.Sample(MeshTextureSampler, In.TextureUV) *
In.Diffuse;
else
Output.RGBColor = In.Diffuse;
return Output;
}
Related topics