X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.h;h=d0ff349069cee04e69992d2c94fa76233b9f6f0d;hb=c89c1fb972fae2cb2f720cb3ec6cf8238ae8d2e1;hp=0973bfb5ba16a4c7d04f6f54844ea677149c6c25;hpb=f1e31ee641f0cafdfe2015bff206b9ee2ad85abf;p=libs%2Fgl.git diff --git a/source/core/pipelinestate.h b/source/core/pipelinestate.h index 0973bfb5..d0ff3490 100644 --- a/source/core/pipelinestate.h +++ b/source/core/pipelinestate.h @@ -33,21 +33,24 @@ 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; - BoundUniformBlock(int); + BoundUniformBlock(int b): binding(b) { } }; enum ChangeMask @@ -79,7 +82,6 @@ private: const DepthTest *depth_test = 0; const StencilTest *stencil_test = 0; const Blend *blend = 0; - mutable unsigned changes = 0; template void set(T &, T, unsigned); @@ -90,6 +92,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); @@ -99,6 +102,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; }