#ifndef MSP_GL_BLOOM_H_
#define MSP_GL_BLOOM_H_
-#include "framebuffer.h"
-#include "mesh.h"
#include "postprocessor.h"
-#include "texture2d.h"
-#include "texturing.h"
-#include "program.h"
#include "programdata.h"
#include "rendertarget.h"
namespace Msp {
namespace GL {
+class Program;
+
/**
The Bloom post-processing effect causes very bright areas of the image to bleed
into surrounding pixels. Commonly used together with HDR rendering.
Loader(Template &);
};
- float radius;
- float strength;
-
- Template();
+ float radius = 2.0f;
+ float strength = 0.2f;
virtual Bloom *create(unsigned, unsigned) const;
};
private:
RenderTarget *target[2];
ProgramData common_shdata;
- Program blur_shader;
+ const Program &blur_shader;
ProgramData blur_shdata[2];
- Program combine_shader;
- Texturing combine_texturing;
- RefPtr<Mesh> quad;
- RefPtr<Sampler> nearest_sampler;
- RefPtr<Sampler> linear_sampler;
+ const Program &combine_shader;
+ const Mesh &quad;
+ const Sampler &nearest_sampler;
+ const Sampler &linear_sampler;
public:
Bloom(unsigned, unsigned);
void set_strength(float);
virtual void render(Renderer &, const Texture2D &, const Texture2D &);
+
+ virtual void set_debug_name(const std::string &);
};
} // namespace GL