X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.h;h=31938829ec61186e0cc6863fe7870640e898ebf1;hp=0d0520a0262565a1c56a9b78ab9bece536677e95;hb=7ef75a4c4dbfc437e466381dd67c23357e607b82;hpb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14 diff --git a/source/core/pipelinestate.h b/source/core/pipelinestate.h index 0d0520a0..31938829 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; @@ -46,30 +51,28 @@ private: enum ChangeMask { - SHPROG = 1, - VERTEX_SETUP = 2, - FACE_CULL = 4, - CLIP_PLANES = 8, - TEXTURES = 16, - UNIFORMS = 32, - DEPTH_TEST = 64, - STENCIL_TEST = 128, - BLEND = 256, - FRAMEBUFFER = 512, - VIEWPORT = 1024, - SCISSOR = 2048 + FRAMEBUFFER = 1, + VIEWPORT = 2, + SCISSOR = 4, + SHPROG = 8, + UNIFORMS = 16, + TEXTURES = 32, + VERTEX_SETUP = 64, + FACE_CULL = 128, + DEPTH_TEST = 256, + STENCIL_TEST = 512, + BLEND = 1024 }; const Framebuffer *framebuffer = 0; const Rect *viewport = 0; const Rect *scissor = 0; const Program *shprog = 0; + std::vector uniform_blocks; + std::vector textures; const VertexSetup *vertex_setup = 0; FaceWinding front_face = COUNTERCLOCKWISE; CullMode face_cull = NO_CULL; - unsigned enabled_clip_planes = 0; - std::vector textures; - std::vector uniform_blocks; const DepthTest *depth_test = 0; const StencilTest *stencil_test = 0; const Blend *blend = 0; @@ -82,12 +85,11 @@ public: void set_viewport(const Rect *); void set_scissor(const Rect *); void set_shader_program(const Program *); + void set_uniform_block(int, const UniformBlock *); + void set_texture(unsigned, const Texture *, const Sampler *); 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 *); void set_stencil_test(const StencilTest *); void set_blend(const Blend *);