X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.cpp;h=8d59a31624eddc823e23cd7260ed444c4efc9129;hb=3efe3bab1c8290bd49a957ebec0ad97e58a35fcf;hp=fd474d28f3f106d0dcdf1226a28d42755877b09d;hpb=1b2e58f0e3c84e45b40e89b07939e89e7a211179;p=libs%2Fgl.git diff --git a/source/core/pipelinestate.cpp b/source/core/pipelinestate.cpp index fd474d28..8d59a316 100644 --- a/source/core/pipelinestate.cpp +++ b/source/core/pipelinestate.cpp @@ -10,7 +10,7 @@ namespace Msp { namespace GL { template -void PipelineState::set(T &target, T value, unsigned flag) +void PipelineState::set(T &target, const T &value, unsigned flag) { if(value!=target) { @@ -24,12 +24,12 @@ void PipelineState::set_framebuffer(const Framebuffer *f) set(framebuffer, f, FRAMEBUFFER); } -void PipelineState::set_viewport(const Rect *v) +void PipelineState::set_viewport(const Rect &v) { set(viewport, v, VIEWPORT); } -void PipelineState::set_scissor(const Rect *s) +void PipelineState::set_scissor(const Rect &s) { set(scissor, s, SCISSOR); } @@ -44,13 +44,13 @@ 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; const Buffer *buffer = (block ? block->get_buffer() : 0); if(block!=i->block || buffer!=i->buffer || binding<0) { i->block = block; i->buffer = buffer; i->changed = true; + i->used = block; changes |= UNIFORMS; } } @@ -70,13 +70,13 @@ void PipelineState::set_texture(unsigned binding, const Texture *tex, int level, 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 || level!=i->level || samp!=i->sampler) { i->texture = tex; i->sampler = samp; i->level = level; i->changed = true; + i->used = (tex && samp); changes |= TEXTURES; } } @@ -101,17 +101,17 @@ void PipelineState::set_face_cull(CullMode c) set(face_cull, c, FACE_CULL); } -void PipelineState::set_depth_test(const DepthTest *dt) +void PipelineState::set_depth_test(const DepthTest &dt) { set(depth_test, dt, DEPTH_TEST); } -void PipelineState::set_stencil_test(const StencilTest *st) +void PipelineState::set_stencil_test(const StencilTest &st) { set(stencil_test, st, STENCIL_TEST); } -void PipelineState::set_blend(const Blend *b) +void PipelineState::set_blend(const Blend &b) { set(blend, b, BLEND); }