X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbloom.h;h=b3841c73318b65b698cb5ec437372a5feaae1d86;hb=0ab875bdc9fbf84ecfce883b188410bb45882447;hp=00130fa18d1277576fa400a005d44679d7f44a18;hpb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8;p=libs%2Fgl.git diff --git a/source/bloom.h b/source/bloom.h index 00130fa1..b3841c73 100644 --- a/source/bloom.h +++ b/source/bloom.h @@ -8,6 +8,7 @@ #include "texturing.h" #include "program.h" #include "programdata.h" +#include "rendertarget.h" namespace Msp { namespace GL { @@ -23,20 +24,18 @@ a blur filter. 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); @@ -45,7 +44,7 @@ public: 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