#include "texturing.h"
#include "program.h"
#include "programdata.h"
+#include "rendertarget.h"
namespace Msp {
namespace GL {
class Bloom: public PostProcessor
{
private:
- Framebuffer fbo;
- Texture2D tex[2];
+ RenderTarget *target[2];
+ ProgramData common_shdata;
Program blur_shader;
- ProgramData blur_shdata_common;
- ProgramData blur_shdata_x;
- ProgramData blur_shdata_y;
+ ProgramData blur_shdata[2];
Program combine_shader;
- ProgramData combine_shdata;
Texturing combine_texturing;
- Mesh quad;
+ const Mesh &quad;
public:
Bloom(unsigned, unsigned);
-
+ ~Bloom();
+
/** Sets the σ value of the gaussian blur. Values much larger than 4.0 are
likely to cause artifacts. */
void set_radius(float);
values mean more blurriness. */
void set_strength(float);
- virtual void render(const Texture2D &, const Texture2D &);
+ virtual void render(Renderer &, const Texture2D &, const Texture2D &);
};
} // namespace GL