X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.cpp;h=076eb333d29b127a0d08ef38ec158223fb957179;hb=58c5647c775e38dd08a64ad435dfe0673a62fcd1;hp=0306a2626c9c4cbde629e6fc236fb2648431ebc5;hpb=3930e89d1dab90a27542c3798782216499b3ab44;p=libs%2Fgl.git diff --git a/source/core/pipelinestate.cpp b/source/core/pipelinestate.cpp index 0306a262..076eb333 100644 --- a/source/core/pipelinestate.cpp +++ b/source/core/pipelinestate.cpp @@ -42,6 +42,7 @@ void PipelineState::set_uniform_block(int binding, const UniformBlock *block) auto i = lower_bound_member(uniform_blocks, binding, &BoundUniformBlock::binding); if(i==uniform_blocks.end() || i->binding!=binding) i = uniform_blocks.insert(i, BoundUniformBlock(binding)); + i->used = block; if(block!=i->block || binding<0) { i->block = block; @@ -58,6 +59,7 @@ void PipelineState::set_texture(unsigned binding, const Texture *tex, const Samp auto i = lower_bound_member(textures, binding, &BoundTexture::binding); if(i==textures.end() || i->binding!=binding) i = textures.insert(i, BoundTexture(binding)); + i->used = (tex && samp); if(tex!=i->texture || samp!=i->sampler) { i->texture = tex; @@ -72,6 +74,11 @@ void PipelineState::set_vertex_setup(const VertexSetup *s) set(vertex_setup, s, VERTEX_SETUP); } +void PipelineState::set_primitive_type(PrimitiveType t) +{ + set(primitive_type, t, PRIMITIVE_TYPE); +} + void PipelineState::set_front_face(FaceWinding w) { set(front_face, w, FACE_CULL); @@ -97,20 +104,5 @@ void PipelineState::set_blend(const Blend *b) set(blend, b, BLEND); } - -PipelineState::BoundTexture::BoundTexture(unsigned b): - binding(b), - changed(false), - texture(0), - sampler(0) -{ } - - -PipelineState::BoundUniformBlock::BoundUniformBlock(int b): - binding(b), - changed(false), - block(0) -{ } - } // namespace GL } // namespace Msp