fragment_program Ogre/Compositor/SecurityCam_FP_GL glsl glsles { source compositors/SecurityCam.glsl default_params { param_named RT int 0 param_named Rand int 1 param_named Noise int 2 param_named Overlay int 3 } } fragment_program Ogre/Compositor/SecurityCam_FP_HLSL hlsl glslang { source compositors/SecurityCam.glsl target ps_2_a } fragment_program Ogre/Compositor/SecurityCam_FP unified { delegate Ogre/Compositor/SecurityCam_FP_GL delegate Ogre/Compositor/SecurityCam_FP_HLSL } material Ogre/Compositor/SecurityCam { technique { pass { depth_check off vertex_program_ref Ogre/Compositor/StdQuad_Tex2a_vp { } fragment_program_ref Ogre/Compositor/SecurityCam_FP { param_named_auto time_0_X time_0_x 120 param_named_auto sin_time_0_X sintime_0_x 120 param_named distortionFreq float 0.5 param_named distortionScale float 0.1 param_named distortionRoll float 0.02 param_named interference float 0.04 param_named frameLimit float 0.4 param_named frameShape float 0.15 param_named frameSharpness float 5.0 } texture_unit RT { tex_coord_set 0 tex_address_mode clamp filtering linear linear linear } texture_unit Rand { texture compositors/Random3D.dds 3d tex_coord_set 1 tex_address_mode wrap filtering linear linear linear } texture_unit Noise { texture compositors/NoiseVolume.dds 3d tex_coord_set 2 tex_address_mode wrap filtering linear linear linear } texture_unit Overlay { anim_texture compositors/securitycam_1.png compositors/securitycam_2.png 1 tex_coord_set 3 tex_address_mode wrap filtering linear linear linear } } } }