X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Frenderer.cpp;h=416a0fc89ced4827147982f234ca009fb94576c0;hb=34811e25cb7ec22d5b156cd00485aa82687f000a;hp=d4cbbfe3454e39ef91a881bcf72cb8e06e00628a;hpb=e246ab24f150ae47df055af42487d267d905075d;p=libs%2Fgl.git diff --git a/source/renderer.cpp b/source/renderer.cpp index d4cbbfe3..416a0fc8 100644 --- a/source/renderer.cpp +++ b/source/renderer.cpp @@ -9,6 +9,7 @@ #include "programdata.h" #include "renderable.h" #include "renderer.h" +#include "sampler.h" #include "texture.h" #include "texturing.h" #include "texunit.h" @@ -73,9 +74,10 @@ void Renderer::transform(const Matrix &matrix) changed |= MATRIX; } -void Renderer::set_texture(const Texture *t) +void Renderer::set_texture(const Texture *t, const Sampler *s) { state->texture = t; + state->sampler = s; state->texturing = 0; } @@ -83,6 +85,7 @@ void Renderer::set_texturing(const Texturing *t) { state->texturing = t; state->texture = 0; + state->sampler = 0; } unsigned Renderer::allocate_effect_texunit() @@ -283,7 +286,13 @@ void Renderer::apply_state() { Texturing::unbind(); if(state->texture) + { + if(state->sampler) + state->sampler->bind_to(0); + else + Sampler::unbind_from(0); state->texture->bind_to(0); + } else Texture::unbind_from(0); }