]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/pipelinestate.h
Remove support for array size specialization from the engine as well
[libs/gl.git] / source / core / pipelinestate.h
index 42543e4dc2596f5de2e2c0a7c71e85f9b64fa4c8..478705367a1b67a67b125f85f752a8f46d6014ee 100644 (file)
@@ -20,6 +20,11 @@ class Texture;
 class UniformBlock;
 class VertexSetup;
 
+/**
+Stores state for the entire GPU pipeline.
+
+Applications normally use the higher-level Renderer class rather than this.
+*/
 class PipelineState: public PipelineStateBackend
 {
        friend PipelineStateBackend;
@@ -49,7 +54,6 @@ private:
                SHPROG = 1,
                VERTEX_SETUP = 2,
                FACE_CULL = 4,
-               CLIP_PLANES = 8,
                TEXTURES = 16,
                UNIFORMS = 32,
                DEPTH_TEST = 64,
@@ -60,25 +64,20 @@ private:
                SCISSOR = 2048
        };
 
-       const Framebuffer *framebuffer;
-       const Rect *viewport;
-       const Rect *scissor;
-       const Program *shprog;
-       const VertexSetup *vertex_setup;
-       FaceWinding front_face;
-       CullMode face_cull;
-       unsigned enabled_clip_planes;
+       const Framebuffer *framebuffer = 0;
+       const Rect *viewport = 0;
+       const Rect *scissor = 0;
+       const Program *shprog = 0;
+       const VertexSetup *vertex_setup = 0;
+       FaceWinding front_face = COUNTERCLOCKWISE;
+       CullMode face_cull = NO_CULL;
        std::vector<BoundTexture> textures;
        std::vector<BoundUniformBlock> uniform_blocks;
-       const DepthTest *depth_test;
-       const StencilTest *stencil_test;
-       const Blend *blend;
-       mutable unsigned changes;
-
-public:
-       PipelineState();
+       const DepthTest *depth_test = 0;
+       const StencilTest *stencil_test = 0;
+       const Blend *blend = 0;
+       mutable unsigned changes = 0;
 
-private:
        template<typename T>
        void set(T &, T, unsigned);
 public:
@@ -89,7 +88,6 @@ public:
        void set_vertex_setup(const VertexSetup *);
        void set_front_face(FaceWinding);
        void set_face_cull(CullMode);
-       void set_enabled_clip_planes(unsigned);
        void set_texture(unsigned, const Texture *, const Sampler *);
        void set_uniform_block(int, const UniformBlock *);
        void set_depth_test(const DepthTest *);