X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fsequence.h;h=cc4b6963b017ce98b2250597d2f02c8c55f67988;hb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;hp=0bc65cb78e5f1c5d410b4d5cbc52ca6e4a18adf1;hpb=31ae3e3c4a28ac2ec97cc3efaa25adbf1511aadc;p=libs%2Fgl.git diff --git a/source/render/sequence.h b/source/render/sequence.h index 0bc65cb7..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,20 +73,29 @@ 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(unsigned, unsigned, const FrameFormat & = FrameFormat()); + Sequence() = default; + Sequence(unsigned, unsigned, const FrameFormat &); ~Sequence(); - const FrameFormat &get_target_format() { return target_format; } - unsigned get_width() const { return width; } 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. */