X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexture.h;h=477eaca382fa55dbe6ab1925fb62677db1ed72c1;hb=912ae952489699769be43f90d4478263461964a4;hp=6b8117fe4f7d11b1c385e174cb343da29f48d909;hpb=7857d9df8852071e404a63988f6ad3ddb8f70916;p=libs%2Fgl.git diff --git a/source/texture.h b/source/texture.h index 6b8117fe..477eaca3 100644 --- a/source/texture.h +++ b/source/texture.h @@ -8,6 +8,8 @@ namespace Msp { namespace GL { +class Resources; + enum TextureFilter { /// No filtering @@ -66,11 +68,17 @@ wrapping is applied. The default for all directions is REPEAT. class Texture { protected: - class Loader: public DataFile::ObjectLoader + class Loader: public DataFile::CollectionObjectLoader { + protected: + bool srgb; + public: Loader(Texture &); + Loader(Texture &, Collection &); private: + void init(); + void filter(TextureFilter); void generate_mipmap(bool); void mag_filter(TextureFilter); @@ -149,11 +157,11 @@ public: GLenum get_target() const { return target; } unsigned get_id() const { return id; } - void bind() const; + void bind() const { bind_to(0); } void bind_to(unsigned) const; - static const Texture *current(); - static void unbind(); + static const Texture *current(unsigned = 0); + static void unbind() { unbind_from(0); } static void unbind_from(unsigned); };