fragment_program GlowX_fp cg { source glow.cg entry_point GlowX_fp default_params { param_named_auto invTexSize inverse_texture_size 0 } profiles ps_2_0 arbfp1 } material GlowCompositorMat/GlowX { technique { pass { cull_hardware none cull_software none depth_func always_pass fragment_program_ref GlowX_fp { } texture_unit { tex_coord_set 0 tex_address_mode clamp filtering linear linear linear } } } } fragment_program GlowY_fp cg { source glow.cg entry_point GlowY_fp default_params { param_named_auto invTexSize inverse_texture_size 0 } profiles ps_2_0 arbfp1 } material GlowCompositorMat/GlowY { technique { pass { cull_hardware none cull_software none depth_func always_pass fragment_program_ref GlowY_fp { } texture_unit { tex_coord_set 0 tex_address_mode clamp filtering linear linear linear } } } } fragment_program GlowBlend_fp cg { source glow.cg entry_point GlowBlend_fp profiles ps_2_0 arbfp1 } material GlowCompositorMat/GlowBlend { technique { pass { cull_hardware none cull_software none depth_func always_pass fragment_program_ref GlowBlend_fp { } texture_unit { tex_coord_set 0 tex_address_mode clamp filtering trilinear } texture_unit { tex_coord_set 0 tex_address_mode clamp filtering trilinear } } } }