X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fsequence.h;h=cc4b6963b017ce98b2250597d2f02c8c55f67988;hb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;hp=00211b006ef4f119c13f292a4b4c885f71dfb10c;hpb=74c995a4ce89d52100f2e9967f61a719a8affe67;p=libs%2Fgl.git diff --git a/source/render/sequence.h b/source/render/sequence.h index 00211b00..cc4b6963 100644 --- a/source/render/sequence.h +++ b/source/render/sequence.h @@ -1,25 +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 View; +class RenderTarget; /** Top-level content class. Typically a Sequence is used as the content @@ -78,25 +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(const View &, const FrameFormat & = FrameFormat()); - Sequence(const Framebuffer &, const FrameFormat & = FrameFormat()); -private: - void init(unsigned, unsigned, const FrameFormat &); -public: + 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. */