/* libsegl - Sebas Extended GL Library * Collection of Opengl/3D-Math helpers * * Copyright (c) 2008 by Sebastian Lohff, seba@seba-geek.de * http://www.seba-geek.de * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef __GLTEXTUR_H #define __GLTEXTUR_H #include #include #include #include #include #include #include "sdlfuncs.h" namespace segl { class GLTexture { private: GLuint texint; SDL_Surface *tex; int width, height; std::string filename; // wenn von datei geladen // Parameter GLint minfilter; GLint magfilter; GLint wraps; GLint wrapt; bool loaded; bool texconverted; bool keepsurface; bool donotreload; void init(); bool loadLocalSurface(); void convertLocalSurface(); static std::vector alltextures; protected: GLTexture(SDL_Surface*); bool loadSurface(SDL_Surface*, bool = false); public: static void reloadAll(); GLTexture(); GLTexture(std::string, GLint=GL_LINEAR, GLint=GL_LINEAR, GLint=GL_REPEAT, GLint=GL_REPEAT); ~GLTexture(); //load bool loadImage(std::string); bool selectTexture(); void unloadTexture(); bool setParameter(GLint=0, GLint=0, GLint=0, GLint=0); inline bool select() { return selectTexture(); } int getW(); int getH(); bool isLoaded(); }; } // namespace segl #endif