Shader Type

The syntax for declaring a shader variable in an effect changed from Direct3D 9 to Direct3D 10.

Shader Type for Direct3D 10

Declare a shader variable within an effect pass (in Direct3D 10) using the shader type syntax:

SetPixelShader Compile( ShaderTarget, ShaderFunction );

SetGeometryShader Compile( ShaderTarget, ShaderFunction );

SetVertexShader Compile( ShaderTarget, ShaderFunction );

 

Parameters

ItemDescription

SetXXXShader

The Direct3D API call that creates the shader object. Can be either: SetPixelShader or SetGeometryShader or SetVertexShader.

ShaderTarget

The shader model to compile against. This is valid for any target including all Direct3D 9 targets plus the shader model 4 targets: vs_4_0, gs_4_0, and ps_4_0.

ShaderFunction

An ASCII string that contains the name of the shader entry point function; this is the function that begins execution when the shader is invoked. The (...) represents the shader arguments; these are the same arguments passed to the shader creation API's: VSSetShader or GSSetShader or PSSetShader.

 

Example

Here is an example that creates a vertex shader and pixel shader object, compiled for a particular shader model. In the Direct3D 10 example, there is no geometry shader, so the pointer is set to NULL.



// Direct3D 10
technique10 Render
{
    pass P0
    {
        SetVertexShader( CompileShader( vs_4_0, VS() ) );
        SetGeometryShader( NULL );
        SetPixelShader( CompileShader( ps_4_0, PS() ) );
    }
}


Shader Type for Direct3D 9

Declare a shader variable within an effect pass (for Direct3D 9) using the shader type syntax:

PixelShader = compile ShaderTarget ShaderFunction(...);

VertexShader = compile ShaderTarget ShaderFunction(...);

 

Parameters

ItemDescription

XXXShader

A shader variable, which represents the compiled shader. Can be either: PixelShader or VertexShader.

ShaderTarget

The shader model to compile against; depends on the type of shader variable.

ShaderFunction(...)

An ASCII string that contains the name of the shader entry point function; this is the function that begins execution when the shader is invoked. The (...) represents the shader arguments; these are the same arguments passed to the shader creation API's: SetVertexShader or SetPixelShader.

 

Example

Here is an example of a vertex shader and pixel shader object, compiled for a particular shader model.



// Direct3D 9
technique RenderSceneWithTexture1Light
{
    pass P0
    {          
        VertexShader = compile vs_2_0 RenderSceneVS( 1, true, true );
        PixelShader  = compile ps_2_0 RenderScenePS( true );
    }
}


See also

Data Types (DirectX HLSL)

 

 

Show: