]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/pipelinestate.cpp
Track the in-use state of resource bindings in PipelineState
[libs/gl.git] / source / core / pipelinestate.cpp
index bc13d3ba562b51535b749320b7341ba64eaf64e9..076eb333d29b127a0d08ef38ec158223fb957179 100644 (file)
@@ -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;