fragment_program Glow/A_ps_GL glsl glsles { source compositors/GlowA.glsl default_params { param_named RT int 0 } } fragment_program Glow/A_ps_HLSL hlsl glslang { source compositors/GlowA.glsl target ps_2_a } fragment_program Glow/A_ps unified { delegate Glow/A_ps_GL delegate Glow/A_ps_HLSL default_params { param_named_auto invTexSize inverse_texture_size 0 param_named blurRadius float 2.0; } } fragment_program Glow/B_ps_GL glsl glsles { source compositors/GlowB.glsl default_params { param_named_auto invTexSize inverse_texture_size 0 param_named blurRadius float 2.0; param_named RT int 0 param_named BlurX int 1 } } fragment_program Glow/B_ps_HLSL hlsl glslang { source compositors/GlowB.glsl target ps_2_a default_params { param_named_auto invTexSize inverse_texture_size 0 param_named blurRadius float 2.0; } } fragment_program Glow/B_ps unified { delegate Glow/B_ps_GL delegate Glow/B_ps_HLSL } material GlowCompositorMat/GlowA { technique { pass { cull_hardware none depth_func always_pass vertex_program_ref Ogre/Compositor/StdQuad_Tex2_vp { } fragment_program_ref Glow/A_ps { } texture_unit map { tex_coord_set 0 tex_address_mode clamp filtering trilinear } } } } material GlowCompositorMat/GlowB { technique { pass { cull_hardware none depth_func always_pass vertex_program_ref Ogre/Compositor/StdQuad_Tex2_vp { } fragment_program_ref Glow/B_ps { } texture_unit scene { tex_coord_set 0 tex_address_mode clamp filtering trilinear } texture_unit map { tex_coord_set 0 tex_address_mode clamp filtering trilinear } } } }