X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frender%2Fsequence.h;h=be8ed30621a08403842616c11d09fbab877359d3;hp=97d376d112100e68903c23dce25bfae96977253c;hb=2b2676392aff2eb6b38c3e463cc67f4d67a4ef8b;hpb=dff7004fa078d55911664c0f513b5dc6c9449420 diff --git a/source/render/sequence.h b/source/render/sequence.h index 97d376d1..be8ed306 100644 --- a/source/render/sequence.h +++ b/source/render/sequence.h @@ -3,10 +3,13 @@ #include #include +#include "blend.h" +#include "depthtest.h" #include "framebuffer.h" #include "renderable.h" #include "renderbuffer.h" #include "rendertarget.h" +#include "stenciltest.h" #include "texture2d.h" namespace Msp { @@ -15,7 +18,6 @@ namespace GL { class Blend; class Camera; class Clipping; -class DepthTest; class Lighting; class PostProcessor; class View; @@ -42,8 +44,9 @@ public: private: Tag tag; const Lighting *lighting; - const DepthTest *depth_test; - const Blend *blend; + DepthTest depth_test; + StencilTest stencil_test; + Blend blend; const Clipping *clipping; Renderable *renderable; @@ -53,12 +56,14 @@ public: Tag get_tag() const { return tag; } void set_lighting(const Lighting *); - void set_depth_test(const DepthTest *); - void set_blend(const Blend *); + void set_depth_test(const DepthTest &); + void set_stencil_test(const StencilTest &); + void set_blend(const Blend &); void set_clipping(const Clipping *); const Lighting *get_lighting() const { return lighting; } - const DepthTest *get_depth_test() const { return depth_test; } - const Blend *get_blend() const { return blend; } + const DepthTest &get_depth_test() const { return depth_test; } + const StencilTest &get_stencil_test() const { return stencil_test; } + const Blend &get_blend() const { return blend; } const Clipping *get_clipping() const { return clipping; } Renderable *get_renderable() const { return renderable; } }; @@ -66,20 +71,17 @@ public: DEPRECATED typedef Step Pass; private: - struct Slot + struct PostProcStep { - Renderable *renderable; - std::set passes; + PostProcessor *postproc; + bool owned; - Slot(Renderable *); + PostProcStep(PostProcessor *pp, bool o): postproc(pp), owned(o) { } }; - typedef std::list StepList; - - StepList steps; + std::vector steps; const Camera *camera; - std::vector renderables; - std::vector > postproc; + std::vector postproc; unsigned width; unsigned height; bool hdr; @@ -87,6 +89,7 @@ private: unsigned samples; RenderTarget *target[2]; RenderTarget *target_ms; + std::string debug_name; public: Sequence(unsigned, unsigned, bool = false); @@ -137,6 +140,11 @@ public: private: void create_targets(unsigned); + +public: + void set_debug_name(const std::string &); +private: + void set_target_debug_names(); }; } // namespace GL