10 Texturing::~Texturing()
16 void Texturing::attach(unsigned attch, const Texture &tex)
18 set_attachment(attch, &tex);
21 void Texturing::detach(unsigned attch)
23 set_attachment(attch, 0);
26 void Texturing::set_attachment(unsigned attch, const Texture *tex)
28 if(attch>=TexUnit::get_n_units())
29 throw out_of_range("Texturing::set_attachment");
31 if(attachments.size()<=attch)
32 attachments.resize(attch+1);
34 attachments[attch].tex = tex;
37 bind_attachment(attch);
40 void Texturing::bind_attachment(unsigned i) const
42 const Attachment &attch = attachments[i];
44 attch.tex->bind_to(i);
46 Texture::unbind_from(i);
49 void Texturing::unbind_attachment(unsigned i)
51 Texture::unbind_from(i);
54 void Texturing::bind() const
56 const Texturing *old = current();
59 for(unsigned i=0; i<attachments.size(); ++i)
63 for(unsigned i=attachments.size(); i<old->attachments.size(); ++i)
69 void Texturing::unbind()
71 const Texturing *old = current();
74 for(unsigned i=old->attachments.size(); i--;)
80 Texturing::Attachment::Attachment():