X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexturing.h;h=cba77e3fb3e49a57e4ca98f7bb698f7ddf7f8489;hb=66181b3f47322ffc9b8aebf04a8c222abe1a75a2;hp=34141c64136fb4d4d0dac7dfbdc90e76cbad6ba0;hpb=c8f98daaaba04ba93d6d7170302d8b91c3410fa5;p=libs%2Fgl.git diff --git a/source/texturing.h b/source/texturing.h index 34141c64..cba77e3f 100644 --- a/source/texturing.h +++ b/source/texturing.h @@ -12,20 +12,27 @@ class Texture; class Texturing: public Bindable { private: - std::vector attachments; + struct Attachment + { + unsigned unit; + const Texture *texture; + + Attachment(unsigned, const Texture *); + }; + + std::vector attachments; public: ~Texturing(); + int find_free_unit(const std::string & = std::string()) const; void attach(unsigned, const Texture &); void detach(unsigned); private: void set_attachment(unsigned, const Texture *); - void bind_attachment(unsigned) const; - - static void unbind_attachment(unsigned); - public: + const Texture *get_attached_texture(unsigned) const; + void bind() const; static void unbind();