X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.h;h=bc6087c780ea625d029bc5752c6fc80c3b4bdba0;hb=c356a20547afae97b412da36e0b0a7d51e879401;hp=5e59330953e9e29f179323a9001b7487da2d65fa;hpb=a6d84d93ce8c0adde41679a6c6852335e19ada17;p=libs%2Fgl.git diff --git a/source/core/pipelinestate.h b/source/core/pipelinestate.h index 5e593309..bc6087c7 100644 --- a/source/core/pipelinestate.h +++ b/source/core/pipelinestate.h @@ -11,6 +11,7 @@ namespace Msp { namespace GL { class Blend; +class Buffer; class DepthTest; class Framebuffer; class Program; @@ -33,21 +34,25 @@ class PipelineState: public PipelineStateBackend private: struct BoundTexture { - unsigned binding; - mutable bool changed; - const Texture *texture; - const Sampler *sampler; + unsigned binding = 0; + mutable bool changed = false; + mutable bool used = false; + const Texture *texture = 0; + const Sampler *sampler = 0; + int level = -1; - BoundTexture(unsigned); + BoundTexture(unsigned b): binding(b) { } }; struct BoundUniformBlock { - int binding; - mutable bool changed; - const UniformBlock *block; + int binding = 0; + mutable bool changed = false; + mutable bool used = false; + const UniformBlock *block = 0; + const Buffer *buffer = 0; - BoundUniformBlock(int); + BoundUniformBlock(int b): binding(b) { } }; enum ChangeMask @@ -89,6 +94,7 @@ public: void set_shader_program(const Program *); void set_uniform_block(int, const UniformBlock *); void set_texture(unsigned, const Texture *, const Sampler *); + void set_texture(unsigned, const Texture *, int, const Sampler *); void set_vertex_setup(const VertexSetup *); void set_primitive_type(PrimitiveType); void set_front_face(FaceWinding); @@ -98,6 +104,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; }