

vertex_program specular_vs20 hlsl
{
    entry_point specularVS
    target vs_2_0
    source specular.hlsl

    default_params
    {
        param_named_auto gCameraPosObj camera_position_object_space
        param_named_auto gLightPosObj light_position_object_space 0
        param_named_auto gWorldViewProj worldviewproj_matrix
    }
}

fragment_program phong_ps20 hlsl
{
    entry_point phongPS
    target ps_2_0
    source specular.hlsl

    default_params
    {
        param_named gSpecShine float1 20 0 0 0
        param_named_auto gAmbient ambient_light_colour
        param_named_auto gDiffuse light_diffuse_colour 0
        param_named_auto gSpecular light_specular_colour 0
    }
}

fragment_program blinn_ps20 hlsl
{
    entry_point blinnPS
    target ps_2_0
    source specular.hlsl

    default_params
    {
        param_named gSpecShine float1 20 0 0 0
        param_named_auto gAmbient ambient_light_colour
        param_named_auto gDiffuse light_diffuse_colour 0
        param_named_auto gSpecular light_specular_colour 0
    }
}

vertex_program outline_vs20 hlsl
{
    entry_point backVS
    target vs_2_0
    source outline.hlsl

    default_params
    {
        param_named gBorderFactor float1 1 0 0 0
        param_named_auto gWorldViewProj worldviewproj_matrix
    }
}

vertex_program xWave_vs20 hlsl
{
    entry_point waveVS
    target vs_2_0
    source wave.hlsl

    default_params
    {
        param_named gWaveFactor float1 1 0 0 0
        param_named gYFactor float1 1 0 0 0
        param_named_auto gCameraPosObj camera_position_object_space
        param_named_auto gLightPosObj light_position_object_space 0
        param_named_auto gTime time 1
        param_named_auto gWorldViewProj worldviewproj_matrix
    }
}

vertex_program flate_vs20 hlsl
{
    entry_point mainVS
    target vs_2_0
    source flate.hlsl

    default_params
    {
        param_named gFlateFactor float1 1 0 0 0
        param_named_auto gCameraPosObj camera_position_object_space
        param_named_auto gLightPosObj light_position_object_space 0
        param_named_auto gTime time 1
        param_named_auto gWorldViewProj worldviewproj_matrix
    }
}

vertex_program xBlur_vs20 hlsl
{
    entry_point mainVS
    target vs_2_0
    preprocessor_defines blurTime=2
    source blur.hlsl

    default_params
    {
        param_named_auto gWorldViewProj worldviewproj_matrix
    }
}

fragment_program xBlur_ps20 hlsl
{
    entry_point xBlurPS
    target ps_2_0
    preprocessor_defines blurTime=1
    source blur.hlsl

    default_params
    {
        param_named gBlurStep float1 0.01 0 0 0
    }
}

vertex_program growingEdge_vs20 hlsl
{
    entry_point mainVS
    target vs_2_0
    source growingEdge.hlsl

    default_params
    {
        param_named_auto gCameraPosObj camera_position_object_space
        param_named_auto gWorldViewProj worldviewproj_matrix
    }
}

fragment_program growingEdge_ps20 hlsl
{
    entry_point mainPS
    target ps_2_0
    source growingEdge.hlsl

    default_params
    {
        param_named gGlowExponent float1 0.5 0 0 0
        param_named gGlowRejection float1 0.8 0 0 0
        param_named_auto gGlowColor light_diffuse_colour 0
    }
}

vertex_program multiLights_vs30 hlsl
{
    entry_point multiTypeLightVS
    target vs_3_0
    preprocessor_defines gLightCount=5
    source multiLight.hlsl

    default_params
    {
        param_named_auto gCameraPosObj camera_position_object_space
        param_named_auto gLightPosObjArray light_position_object_space_array 5
        param_named_auto gWorldViewProj worldviewproj_matrix
    }
}

fragment_program multiLights_ps30 hlsl
{
    entry_point multiTypeLightPS
    target ps_3_0
    preprocessor_defines gLightCount=5
    source multiLight.hlsl

    default_params
    {
        param_named gSpecShine float1 20 0 0 0
        param_named_auto gAmbient ambient_light_colour
        param_named_auto gDiffuseArray light_diffuse_colour_array 5
        param_named_auto gLightAttenArray light_attenuation_array 5
        param_named_auto gLightDirObjArray light_direction_object_space_array 5
        param_named_auto gLightDistObjArray light_distance_object_space_array 5
        param_named_auto gSLParamsArray spotlight_params_array 5
        param_named_auto gSpecularArray light_specular_colour_array 5
    }
}

fragment_program outline_ps20 hlsl
{
    entry_point backPS
    target ps_2_0
    source outline.hlsl

    default_params
    {
        param_named gBackColor float4 1 1 1 1
    }
}