Index: /branches/heathaze/src/lib/graphics/Makefile.am
===================================================================
--- /branches/heathaze/src/lib/graphics/Makefile.am	(revision 10213)
+++ /branches/heathaze/src/lib/graphics/Makefile.am	(revision 10214)
@@ -22,5 +22,7 @@
 		text_engine/font.cc \
 		text_engine/font_data.cc \
-		text_engine/resource_font.cc
+		text_engine/resource_font.cc \
+		\
+		effects/heat_haze_manager.cc
 
 noinst_HEADERS =\
@@ -43,5 +45,7 @@
 		text_engine/font_data.h \
 		text_engine/resource_font.h \
-		text_engine/default_font.xpm
+		text_engine/default_font.xpm \
+		\
+		effects/heat_haze_manager.h
 
 
Index: /branches/heathaze/src/lib/graphics/effects/heat_haze_manager.cc
===================================================================
--- /branches/heathaze/src/lib/graphics/effects/heat_haze_manager.cc	(revision 10214)
+++ /branches/heathaze/src/lib/graphics/effects/heat_haze_manager.cc	(revision 10214)
@@ -0,0 +1,79 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Silvan Nellen
+   co-programmer: ...
+*/
+
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_
+
+#include "heat_haze_manager.h"
+#include "resource_shader.h"
+
+ObjectListDefinition(HeatHazeManager);
+
+
+/**
+ * the constructor
+ *
+*/
+HeatHazeManager::HeatHazeManager ()
+{
+  this->registerObject(this, HeatHazeManager::_objectList);
+}
+
+
+/**
+ * standard deconstructor
+*/
+HeatHazeManager::~HeatHazeManager ()
+{
+
+}
+
+
+/**
+ * initialise the heathaze manager
+*/
+void HeatHazeManager::init ()
+{
+  this->heatShader = ResourceShader( "shaders/heat_haze.vert", "shaders/heat_haze.frag");
+
+  this->heatShader.activateShader();
+  ParticlesShot = new Shader::Uniform(heatShader, "ParticlesShot");
+  FinalRender = new Shader::Uniform(heatShader, "FinalRender");
+  parameters = new Shader::Uniform(heatShader, "parameters");
+  this->heatShader.deactivateShader();
+
+}
+
+
+/**
+ * Get the mask of all heat particles
+*/
+void HeatHazeManager::acquireMask()
+{
+ for (ObjectList<HeatParticles>::const_iterator it = HeatParticles::objectList().begin();
+       it != HeatParticles::objectList().end();
+       ++it)
+     {
+     //TODO: Let all the HeatParticles draw the particles in a temporary buffer
+     }
+
+}
+
+/**
+ * Apply the disortion effect to the frame
+*/
+void HeatHazeManager::apply()
+{
+  
+}
Index: /branches/heathaze/src/lib/graphics/effects/heat_haze_manager.h
===================================================================
--- /branches/heathaze/src/lib/graphics/effects/heat_haze_manager.h	(revision 10214)
+++ /branches/heathaze/src/lib/graphics/effects/heat_haze_manager.h	(revision 10214)
@@ -0,0 +1,43 @@
+/*!
+ * @file proto_class.h
+ * @brief A class to manage all the heat particles to get a correct heat haze effect
+*/
+
+#ifndef _HEAT_HAZE_MANAGER_H
+#define _HEAT_HAZE_MANAGER_H
+
+#include "base_object.h"
+#include "shader.h"
+#include "texture.h"
+#include "particles/heat_particles.h"
+
+
+//! A class to manage all the heat particles to get a correct heat haze effect
+class HeatHazeManager : public BaseObject {
+ friend class HeatParticle;
+
+  ObjectListDeclaration(HeatHazeManager);
+
+ public:
+  HeatHazeManager();
+  virtual ~HeatHazeManager();
+
+  void acquireMask();
+  void apply();
+
+ private:
+  void init();
+
+ private:
+  Texture  frameBuffer;
+
+  Shader   heatShader;
+
+// uniforms
+  Shader::Uniform*  ParticlesShot;	//!< uniform that is used for the camera position
+  Shader::Uniform*  FinalRender;	//!< uniform that is used for the camera position
+  Shader::Uniform*  parameters;	  	//!< uniform that is used for the camera position
+
+};
+
+#endif /* _HEAT_HAZE_MANAGER_H */
