X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Ftexturing.cpp;h=77bb15435c7391a62a0298ea653f6699417eb55f;hp=425c710ca4d1357d2627995b02f0fc8040f21d86;hb=HEAD;hpb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8 diff --git a/source/texturing.cpp b/source/texturing.cpp deleted file mode 100644 index 425c710c..00000000 --- a/source/texturing.cpp +++ /dev/null @@ -1,98 +0,0 @@ -#include "texenv.h" -#include "texture.h" -#include "texturing.h" -#include "texunit.h" - -namespace Msp { -namespace GL { - -Texturing::~Texturing() -{ - if(current()==this) - unbind(); -} - -void Texturing::attach(unsigned attch, const Texture &tex) -{ - set_attachment(attch, &tex, 0); -} - -void Texturing::attach(unsigned attch, const Texture &tex, const TexEnv &env) -{ - set_attachment(attch, &tex, &env); -} - -void Texturing::detach(unsigned attch) -{ - set_attachment(attch, 0, 0); -} - -void Texturing::set_attachment(unsigned attch, const Texture *tex, const TexEnv *env) -{ - if(attch>=TexUnit::get_n_units()) - throw InvalidParameterValue("Invalid texture attachment"); - - if(attachments.size()<=attch) - attachments.resize(attch+1); - - attachments[attch].tex = tex; - attachments[attch].env = env; - - if(current()==this) - bind_attachment(attch); -} - -void Texturing::bind_attachment(unsigned i) const -{ - const Attachment &attch = attachments[i]; - TexUnit::activate(i); - if(attch.tex) - attch.tex->bind(); - else - Texture::unbind(); - if(attch.env) - attch.env->bind(); - else - TexEnv::unbind(); -} - -void Texturing::unbind_attachment(unsigned i) -{ - TexUnit::activate(i); - Texture::unbind(); - TexEnv::unbind(); -} - -void Texturing::bind() const -{ - const Texturing *old = current(); - if(set_current(this)) - { - for(unsigned i=0; iattachments.size(); ++i) - unbind_attachment(i); - } - } -} - -void Texturing::unbind() -{ - const Texturing *old = current(); - if(set_current(0)) - { - for(unsigned i=old->attachments.size(); i--;) - unbind_attachment(i); - } -} - - -Texturing::Attachment::Attachment(): - tex(0), - env(0) -{ } - -} // namespace GL -} // namespace Msp;