/*! * @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 particleMask; Shader heatShader; // uniforms Shader::Uniform* parameters; }; #endif /* _HEAT_HAZE_MANAGER_H */