/*! * @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 */