]> git.tdb.fi Git - libs/gl.git/blobdiff - source/bloom.cpp
Add functions for setting arrays of 2x2 and 3x3 matrix uniforms
[libs/gl.git] / source / bloom.cpp
index 7537b0a6a80711fdcb1ff6cfc9b005b60d27fecc..6484d052fdb2691b80747cd3965bc2925a799517 100644 (file)
@@ -23,6 +23,7 @@ Bloom::Bloom(unsigned w, unsigned h):
 
        for(unsigned i=0; i<2; ++i)
                target[i] = new RenderTarget(w, h, (RENDER_COLOR,RGB16F));
+       target[1]->set_texture_filter(LINEAR);
 
        common_shdata.uniform("source", 0);
        common_shdata.uniform("blurred", 1);
@@ -84,5 +85,27 @@ void Bloom::render(Renderer &renderer, const Texture2D &src, const Texture2D &)
        quad.draw(renderer);
 }
 
+
+Bloom::Template::Template():
+       radius(2.0f),
+       strength(0.2f)
+{ }
+
+Bloom *Bloom::Template::create(unsigned width, unsigned height) const
+{
+       RefPtr<Bloom> bloom = new Bloom(width/size_divisor, height/size_divisor);
+       bloom->set_radius(radius);
+       bloom->set_strength(strength);
+       return bloom.release();
+}
+
+
+Bloom::Template::Loader::Loader(Template &t):
+       DataFile::DerivedObjectLoader<Template, PostProcessor::Template::Loader>(t)
+{
+       add("strength", &Template::strength);
+       add("radius", &Template::radius);
+}
+
 } // namespace GL
 } // namespace Msp