X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Ftexturing.cpp;h=77bb15435c7391a62a0298ea653f6699417eb55f;hp=db8ee65359a87993fe707fd0182bda4f210e1f51;hb=e16855bccb78c721e2fe3f2ea8fc0310e041cb43;hpb=f1b12c992db974c679d85ae6ec22cd318199d0d5 diff --git a/source/texturing.cpp b/source/texturing.cpp index db8ee653..77bb1543 100644 --- a/source/texturing.cpp +++ b/source/texturing.cpp @@ -7,6 +7,8 @@ using namespace std; namespace Msp { namespace GL { +bool Texturing::legacy_used = true; + Texturing::~Texturing() { if(current()==this) @@ -31,17 +33,21 @@ void Texturing::set_attachment(unsigned attch, const Texture *tex) if(attachments.size()<=attch) attachments.resize(attch+1); - attachments[attch].tex = tex; + attachments[attch] = tex; if(current()==this) - bind_attachment(attch); + bind_attachment(attch, legacy_used); +} + +const Texture *Texturing::get_attached_texture(unsigned i) const +{ + return ibind_to(i); + if(const Texture *tex = attachments[i]) + tex->bind_to(i, legacy); else Texture::unbind_from(i); } @@ -51,13 +57,14 @@ void Texturing::unbind_attachment(unsigned i) Texture::unbind_from(i); } -void Texturing::bind() const +void Texturing::bind(bool legacy) const { const Texturing *old = current(); - if(set_current(this)) + if(set_current(this) || legacy!=legacy_used) { + legacy_used = legacy; for(unsigned i=0; iattachments.size(); ++i) @@ -76,10 +83,5 @@ void Texturing::unbind() } } - -Texturing::Attachment::Attachment(): - tex(0) -{ } - } // namespace GL } // namespace Msp;