Index: /data/trunk/materials/Bloom.material
===================================================================
--- /data/trunk/materials/Bloom.material	(revision 7882)
+++ /data/trunk/materials/Bloom.material	(revision 7883)
@@ -69,5 +69,5 @@
 			texture_unit RT
 			{
-                tex_coord_set 0
+				tex_coord_set 0
 				tex_address_mode clamp
 				filtering linear linear linear
@@ -92,5 +92,5 @@
 			texture_unit RT
 			{
-                tex_coord_set 0
+				tex_coord_set 0
 				tex_address_mode clamp
 				filtering linear linear linear
@@ -120,5 +120,5 @@
 			texture_unit
 			{
-                tex_coord_set 0
+				tex_coord_set 0
 				tex_address_mode clamp
 				filtering linear linear linear
@@ -144,5 +144,5 @@
 			texture_unit
 			{
-                tex_coord_set 0
+				tex_coord_set 0
 				tex_address_mode clamp
 				filtering linear linear linear
@@ -152,27 +152,44 @@
 }
 
-/// Overlay quad
+fragment_program Ogre/Compositor/BloomFP cg
+{
+	source BloomFP.cg
+	entry_point Bloom_ps
+	profiles ps_2_0 arbfp1
+}
+
 material Ogre/Compositor/BloomBlend
 {
-    technique
-    {
-        pass
-        {
-            lighting on
-            diffuse 0.0 0.0 0.0 0.5
-            specular 0.0 0.0 0.0 0.0
-            ambient 0.0 0.0 0.0
-            emissive 1.0 1.0 1.0
-            cull_hardware none
-            depth_check off
-            scene_blend alpha_blend
+	technique
+	{
 
-            texture_unit
-            {
-                tex_coord_set 0
+		pass
+		{
+			cull_hardware none
+			cull_software none
+			depth_func always_pass
+
+			vertex_program_ref Ogre/Compositor/StdQuad_Tex2a_vp
+			{
+			}
+
+			fragment_program_ref Ogre/Compositor/BloomFP
+			{
+			}
+
+			texture_unit
+			{
+				tex_coord_set 0
 				tex_address_mode clamp
-				filtering linear linear linear
-            }
-        }
-    }
+				filtering trilinear
+			}
+
+			texture_unit
+			{
+				tex_coord_set 0
+				tex_address_mode clamp
+				filtering trilinear
+			}
+		}
+	}
 }
Index: /data/trunk/materials/Shaders.compositor
===================================================================
--- /data/trunk/materials/Shaders.compositor	(revision 7882)
+++ /data/trunk/materials/Shaders.compositor	(revision 7883)
@@ -6,30 +6,31 @@
     {
         // Temporary textures
-        texture rt0 128 128 PF_A8R8G8B8
-        texture rt1 128 128 PF_A8R8G8B8
+        texture rt_output target_width target_height PF_R8G8B8
+        texture rt0 128 128 PF_R8G8B8
+        texture rt1 128 128 PF_R8G8B8
+
+        target rt_output
+        {
+            // Render output from previous compositor (or original scene)
+            input previous
+        }
+
+        target rt0
+        {
+            // Start with clear texture
+            input none
+            // Vertical blur pass
+            pass render_quad
+            {
+                // Renders a fullscreen quad with a material
+                material Ogre/Compositor/Blur0
+                input 0 rt_output
+            }
+        }
 
         target rt1
         {
-            // Render output from previous compositor (or original scene)
-            input previous
-        }
-
-        target rt0
-        {
             // Start with clear texture
             input none
-            // Vertical blur pass
-            pass render_quad
-            {
-                // Renders a fullscreen quad with a material
-                material Ogre/Compositor/Blur0
-                input 0 rt1
-            }
-        }
-
-        target rt1
-        {
-            // Start with clear texture
-            input none
             // Horizontal blur pass
             pass render_quad
@@ -44,5 +45,5 @@
         {
             // Start with clear output
-            input previous
+            input none
             // Draw a fullscreen quad
             pass render_quad
@@ -50,5 +51,6 @@
                 // Renders a fullscreen quad with a material
                 material Ogre/Compositor/BloomBlend
-                input 0 rt1
+                input 0 rt_output
+                input 1 rt1
             }
         }
Index: /data/trunk/programs/BloomFP.cg
===================================================================
--- /data/trunk/programs/BloomFP.cg	(revision 7883)
+++ /data/trunk/programs/BloomFP.cg	(revision 7883)
@@ -0,0 +1,7 @@
+sampler RT1 : register(s0);
+sampler RT2 : register(s1);
+
+float4 Bloom_ps (float2 iTexCoord : TEXCOORD0) : COLOR
+{
+	return 0.5*tex2D(RT1, iTexCoord) + 0.5*tex2D(RT2, iTexCoord);
+}
