X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Ftexturing.h;h=0da3eae41794d167d5ee9421943cdac29c9cc74f;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hp=79647f1d95a5b0467a106ddac206066f28267111;hpb=b856ccc893a102536048e8d67a6577a31ebdf166;p=libs%2Fgl.git diff --git a/source/texturing.h b/source/texturing.h index 79647f1d..0da3eae4 100644 --- a/source/texturing.h +++ b/source/texturing.h @@ -16,8 +16,9 @@ private: { unsigned unit; const Texture *texture; + const Sampler *sampler; - Attachment(unsigned, const Texture *); + Attachment(unsigned, const Texture *, const Sampler *); }; std::vector attachments; @@ -25,16 +26,23 @@ private: public: ~Texturing(); - void attach(unsigned, const Texture &); + int find_free_unit(const std::string & = std::string()) const; + void attach(unsigned, const Texture &, const Sampler * = 0); + void attach(unsigned, const Sampler &); void detach(unsigned); private: - void set_attachment(unsigned, const Texture *); + void set_attachment(unsigned, const Texture *, const Sampler *); public: const Texture *get_attached_texture(unsigned) const; + const Sampler *get_attached_sampler(unsigned) const; void bind() const; static void unbind(); + +private: + void bind_attachment(const Attachment &) const; + static void unbind_attachment(unsigned); }; } // namespace GL