X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Ftexture.h;h=19da006937cf536aef73bc9ae43e0ba3bc3472b1;hp=6d26f23684200405018cfd1f56c3286c32d75227;hb=HEAD;hpb=10b5a32fef9f63254a54378a879142793975efe0 diff --git a/source/texture.h b/source/texture.h deleted file mode 100644 index 6d26f236..00000000 --- a/source/texture.h +++ /dev/null @@ -1,117 +0,0 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - -#ifndef MSP_GL_TEXTURE_H_ -#define MSP_GL_TEXTURE_H_ - -#include -#include -#include "gl.h" -#include "predicate.h" - -namespace Msp { -namespace GL { - -enum TextureFilter -{ - NEAREST = GL_NEAREST, - LINEAR = GL_LINEAR, - NEAREST_MIPMAP_NEAREST = GL_NEAREST_MIPMAP_NEAREST, - NEAREST_MIPMAP_LINEAR = GL_NEAREST_MIPMAP_LINEAR, - LINEAR_MIPMAP_NEAREST = GL_LINEAR_MIPMAP_NEAREST, - LINEAR_MIPMAP_LINEAR = GL_LINEAR_MIPMAP_LINEAR -}; - -std::istream &operator>>(std::istream &, TextureFilter &); - - -enum TextureWrap -{ - REPEAT = GL_REPEAT, - CLAMP_TO_EDGE = GL_CLAMP_TO_EDGE, - MIRRORED_REPEAT = GL_MIRRORED_REPEAT -}; - - -/** -Base class for textures. This class only defines operations common for all -texture types and is not instantiable. For specifying images for textures, see -one of the dimensioned texture classes. -*/ -class Texture -{ -protected: - class Loader: public DataFile::ObjectLoader - { - public: - Loader(Texture &); - void generate_mipmap(bool); - void mag_filter(TextureFilter); - void min_filter(TextureFilter); - void wrap(TextureWrap); - void wrap_r(TextureWrap); - void wrap_s(TextureWrap); - void wrap_t(TextureWrap); - }; - - enum ParameterMask - { - MIN_FILTER = 1, - MAG_FILTER = 2, - WRAP_S = 4, - WRAP_T = 8, - WRAP_R = 16, - GENERATE_MIPMAP = 32, - COMPARE = 64, - COMPARE_FUNC = 128 - }; - - unsigned id; - GLenum target; - TextureFilter min_filter; - TextureFilter mag_filter; - TextureWrap wrap_s; - TextureWrap wrap_t; - TextureWrap wrap_r; - bool gen_mipmap; - bool compare; - Predicate cmp_func; - mutable int dirty_params; - - Texture(GLenum); - Texture(const Texture &); - Texture &operator=(const Texture &); -public: - ~Texture(); - -protected: - void update_parameter(int) const; -public: - void set_min_filter(TextureFilter); - void set_mag_filter(TextureFilter); - void set_wrap(TextureWrap); - void set_wrap_s(TextureWrap); - void set_wrap_t(TextureWrap); - void set_wrap_r(TextureWrap); - void set_generate_mipmap(bool); - void set_compare_enabled(bool); - void set_compare_func(Predicate); - GLenum get_target() const { return target; } - unsigned get_id() const { return id; } - - void bind() const; - void bind_to(unsigned) const; - - static const Texture *current(); - static void unbind(); - static void unbind_from(unsigned); -}; - -} // namespace GL -} // namespace Msp - -#endif