]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/renderer.h
Use constructor delegation instead of init functions when possible
[libs/gl.git] / source / render / renderer.h
index 23f7c5cc9a3f132d6154b9e9241aedcf7d186322..af9eac0426e4c265a76bd2dc54879a5f85b636c3 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <set>
 #include <vector>
-#include "framebuffer.h"
+#include "commands.h"
 #include "matrix.h"
 #include "pipelinestate.h"
 #include "programdata.h"
@@ -15,16 +15,17 @@ namespace GL {
 class Batch;
 class Buffer;
 class Camera;
+union ClearValue;
 class Clipping;
 class Material;
 class Mesh;
 class Lighting;
 class Program;
+class QueryPool;
 class Renderable;
 class Sampler;
 class Texture;
 class VertexSetup;
-class WindingTest;
 
 /**
 A class for supervising the rendering process.  While many Renderables (in
@@ -92,7 +93,6 @@ private:
                const Rect *viewport;
                const Rect *scissor;
                unsigned texture_count;
-               unsigned lowest_effect_texunit;
                const Clipping *clipping;
                const Program *shprog;
                unsigned shdata_count;
@@ -121,6 +121,7 @@ private:
        std::vector<BoundProgramData> shdata_stack;
        std::set<const Renderable *> excluded;
        PipelineState pipeline_state;
+       Commands commands;
 
 public:
        Renderer();
@@ -195,14 +196,16 @@ public:
        void exclude(const Renderable &);
        void include(const Renderable &);
 
-       void clear();
-       void clear(BufferBits);
+       void clear(const ClearValue *);
 
        void render(const Renderable &, Tag = Tag());
        void draw(const Batch &);
        void draw_instanced(const Batch &, unsigned);
 
-       void resolve_multisample(Framebuffer &, BufferBits);
+       void resolve_multisample(Framebuffer &);
+
+       void begin_query(const QueryPool &, unsigned);
+       void end_query(const QueryPool &, unsigned);
 
 private:
        void apply_state();