X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.h;h=bc6087c780ea625d029bc5752c6fc80c3b4bdba0;hb=c356a20547afae97b412da36e0b0a7d51e879401;hp=fda7ae1753853f43986a6d550fea58516c100120;hpb=99ca354f18119f82f1adeca100cd665a8f640317;p=libs%2Fgl.git diff --git a/source/core/pipelinestate.h b/source/core/pipelinestate.h index fda7ae17..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);