X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.h;h=fda7ae1753853f43986a6d550fea58516c100120;hb=99ca354f18119f82f1adeca100cd665a8f640317;hp=31938829ec61186e0cc6863fe7870640e898ebf1;hpb=3930e89d1dab90a27542c3798782216499b3ab44;p=libs%2Fgl.git diff --git a/source/core/pipelinestate.h b/source/core/pipelinestate.h index 31938829..fda7ae17 100644 --- a/source/core/pipelinestate.h +++ b/source/core/pipelinestate.h @@ -5,6 +5,7 @@ #include #include "cullface.h" #include "pipelinestate_backend.h" +#include "primitivetype.h" namespace Msp { namespace GL { @@ -61,7 +62,8 @@ private: FACE_CULL = 128, DEPTH_TEST = 256, STENCIL_TEST = 512, - BLEND = 1024 + BLEND = 1024, + PRIMITIVE_TYPE = 2048 }; const Framebuffer *framebuffer = 0; @@ -71,12 +73,12 @@ private: std::vector uniform_blocks; std::vector textures; const VertexSetup *vertex_setup = 0; + PrimitiveType primitive_type = TRIANGLES; FaceWinding front_face = COUNTERCLOCKWISE; CullMode face_cull = NO_CULL; const DepthTest *depth_test = 0; const StencilTest *stencil_test = 0; const Blend *blend = 0; - mutable unsigned changes = 0; template void set(T &, T, unsigned); @@ -88,6 +90,7 @@ public: void set_uniform_block(int, const UniformBlock *); void set_texture(unsigned, const Texture *, const Sampler *); void set_vertex_setup(const VertexSetup *); + void set_primitive_type(PrimitiveType); void set_front_face(FaceWinding); void set_face_cull(CullMode); void set_depth_test(const DepthTest *); @@ -95,6 +98,7 @@ public: void set_blend(const Blend *); const Framebuffer *get_framebuffer() const { return framebuffer; } + const Rect *get_viewport() const { return viewport; } const Program *get_shader_program() const { return shprog; } const VertexSetup *get_vertex_setup() const { return vertex_setup; } FaceWinding get_front_face() const { return front_face; }