X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frender%2Fsequence.h;h=cfd14942e9de044bd5e33af8dc99e43470caf96d;hp=8e6c45af491e2265ba4699f3555ffb399646ecc5;hb=006bdb4f8660098fc524dcca80b24c943c65b249;hpb=cd5f37b066352119cf92d53d0001af7ff99be437 diff --git a/source/render/sequence.h b/source/render/sequence.h index 8e6c45af..cfd14942 100644 --- a/source/render/sequence.h +++ b/source/render/sequence.h @@ -19,7 +19,6 @@ class Camera; class Clipping; class Lighting; class PostProcessor; -class View; /** Top-level content class. Typically a Sequence is used as the content @@ -67,8 +66,6 @@ public: Renderable *get_renderable() const { return renderable; } }; - DEPRECATED typedef Step Pass; - private: struct PostProcStep { @@ -79,47 +76,35 @@ private: }; std::vector steps; - const Camera *camera; std::vector postproc; unsigned width; unsigned height; - bool hdr; - bool alpha; - unsigned samples; + FrameFormat target_format; RenderTarget *target[2]; RenderTarget *target_ms; - std::string debug_name; + bool clear_enabled; + std::vector clear_colors; + float clear_depth; + int clear_stencil; public: - Sequence(unsigned, unsigned, bool = false); - Sequence(const View &); - Sequence(const Framebuffer &); -private: - void init(unsigned, unsigned); -public: + Sequence(); + Sequence(unsigned, unsigned, const FrameFormat &); ~Sequence(); - /* Sets high dynamic range mode. Requires floating-point texture support. - A ColorCurve postprocessor is recommended for full benefit. */ - void set_hdr(bool); - - /* Enable or disable alpha channel. When enabled, all render targets are - created with an RGBA pixel format instead of RGB. */ - void set_alpha(bool); - - void set_multisample(unsigned); - unsigned get_width() const { return width; } unsigned get_height() const { return height; } - bool get_hdr() const { return hdr; } - unsigned get_multisample() const { return samples; } + 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 &); - DEPRECATED Step &add_pass(Tag t, Renderable &r) { return add_step(t, r); } - /** Adds a postprocessor to the sequence. */ void add_postprocessor(PostProcessor &); @@ -137,13 +122,7 @@ public: virtual void render(Renderer &, Tag tag = Tag()) const; -private: - void create_targets(unsigned); - -public: void set_debug_name(const std::string &); -private: - void set_target_debug_names(); }; } // namespace GL