X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fsequence.h;h=cc4b6963b017ce98b2250597d2f02c8c55f67988;hb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;hp=e1ad77bde8baf8f6b23aff926da02f2c8e1dffd4;hpb=d4e380914f02800b7d915a8748ac9ccd7029bc3b;p=libs%2Fgl.git diff --git a/source/render/sequence.h b/source/render/sequence.h index e1ad77bd..cc4b6963 100644 --- a/source/render/sequence.h +++ b/source/render/sequence.h @@ -1,24 +1,20 @@ #ifndef MSP_GL_SEQUENCE_H_ #define MSP_GL_SEQUENCE_H_ -#include -#include +#include #include "blend.h" #include "depthtest.h" -#include "framebuffer.h" +#include "frameformat.h" #include "renderable.h" -#include "rendertarget.h" #include "stenciltest.h" -#include "texture2d.h" namespace Msp { namespace GL { -class Blend; -class Camera; class Clipping; class Lighting; class PostProcessor; +class RenderTarget; /** Top-level content class. Typically a Sequence is used as the content @@ -77,14 +73,18 @@ private: std::vector steps; std::vector postproc; - unsigned width; - unsigned height; + unsigned width = 0; + unsigned height = 0; FrameFormat target_format; - RenderTarget *target[2]; - RenderTarget *target_ms; + RenderTarget *target[2] = { 0, 0 }; + RenderTarget *target_ms = 0; + bool clear_enabled = false; + std::vector clear_colors; + float clear_depth = 1.0f; + int clear_stencil = 0; public: - Sequence(); + Sequence() = default; Sequence(unsigned, unsigned, const FrameFormat &); ~Sequence(); @@ -92,6 +92,11 @@ public: unsigned get_height() const { return height; } const FrameFormat &get_target_format() { return target_format; } + void set_clear_enabled(bool); + void set_clear_colors(const std::vector &); + void set_clear_depth(float); + void set_clear_stencil(int); + /** Adds a step to the sequence. It's permissible to add the same Renderable multiple times. */ Step &add_step(Tag, Renderable &);