X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.h;h=478705367a1b67a67b125f85f752a8f46d6014ee;hb=df9119a9bf2d348a513c515ed92953353da97b54;hp=42543e4dc2596f5de2e2c0a7c71e85f9b64fa4c8;hpb=160e9eea29bd10034733d59507fa1bcca36be401;p=libs%2Fgl.git diff --git a/source/core/pipelinestate.h b/source/core/pipelinestate.h index 42543e4d..47870536 100644 --- a/source/core/pipelinestate.h +++ b/source/core/pipelinestate.h @@ -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 textures; std::vector 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 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 *);