Manages post processing effects to apply to combined scene.
void bind()
Bind to draw to post processor framebuffer.
RenderTexture m_fb
For geometry and lighting.
unsigned int m_screen_vao
Simple quad to draw when applying effects (array).
meta::vector< std::unique_ptr< graphics::PostEffect > > m_effects
List of effects to apply in order.
Effect * add(Args &&... args)
Add an effect to process.
void resize(const int width, const int height)
Resize framebuffers.
void render_effects()
Draw post effects to stored framebuffer.
void render_output()
Draw finished post effects to default framebuffer (screen).
void unbind()
Unbind to draw to post processor framebuffer.
unsigned int m_screen_vbo
Simple quad to draw when applying effects (buffer).
void init(const int width, const int height)
Initialize post processor and GL buffers.
Draw to an opengl texture instead of the screen.
Constraint to ensure type is a Post Effect.