diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2011-12-25 16:18:49 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-01-05 17:17:50 +0100 |
commit | 2636e834c25a42bb2dd01c3c61d075b666dee3bf (patch) | |
tree | c4dde3e6751393aeb3bbf5f48e0dc345ee2da997 /src/base | |
parent | 6b6a6f4331631bb4ef92a23c80e982f2a6b76109 (diff) | |
download | usdx-2636e834c25a42bb2dd01c3c61d075b666dee3bf.tar.gz usdx-2636e834c25a42bb2dd01c3c61d075b666dee3bf.tar.xz usdx-2636e834c25a42bb2dd01c3c61d075b666dee3bf.zip |
base: moved Image and Texture to more appropriate locations
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/image.cpp | 86 | ||||
-rw-r--r-- | src/base/image.hpp | 68 | ||||
-rw-r--r-- | src/base/texture.cpp | 114 | ||||
-rw-r--r-- | src/base/texture.hpp | 91 | ||||
-rw-r--r-- | src/base/texture_colorized.cpp | 32 | ||||
-rw-r--r-- | src/base/texture_colorized.hpp | 52 | ||||
-rw-r--r-- | src/base/texture_transparent.cpp | 32 | ||||
-rw-r--r-- | src/base/texture_transparent.hpp | 53 |
8 files changed, 0 insertions, 528 deletions
diff --git a/src/base/image.cpp b/src/base/image.cpp deleted file mode 100644 index 1eb09ac1..00000000 --- a/src/base/image.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#include "image.hpp" -#include <SDL/SDL_image.h> -#include "utils/binary_file.hpp" - -namespace usdx -{ - log4cpp::Category& Image::log = - log4cpp::Category::getInstance("usdx.base.Image"); - - ImageLoadException::ImageLoadException(std::string error) : - error(error) - { - } - - ImageLoadException::~ImageLoadException() throw() - { - } - - const char* ImageLoadException::what() const throw() - { - return error.c_str(); - } - - Image::Image(boost::filesystem::wpath filename) : - filename(filename), surface(NULL) - { - } - - Image::~Image() - { - if (surface != NULL) { - SDL_FreeSurface(surface); - surface = NULL; - } - } - - void Image::load(void) - { - BinaryFile file(filename); - - SDL_RWops* source = SDL_RWFromConstMem(file.get_content(), - file.get_filesize()); - surface = IMG_Load_RW(source, 1); - - if (surface == NULL) { - log << log4cpp::Priority::ERROR << - "Error loading image: " << filename; - throw ImageLoadException(IMG_GetError()); - } - } - - SDL_Surface* Image::get_surface(void) - { - if (surface == NULL) { - load(); - } - - return surface; - } -}; diff --git a/src/base/image.hpp b/src/base/image.hpp deleted file mode 100644 index 4c9d911e..00000000 --- a/src/base/image.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#ifndef IMAGE_HPP -#define IMAGE_HPP - -#include <exception> -#include <string> -#include <boost/filesystem.hpp> -#include <SDL/SDL.h> -#include <log4cpp/Category.hh> - -namespace usdx -{ - class ImageLoadException : public std::exception - { - private: - std::string error; - - public: - ImageLoadException(std::string error); - ~ImageLoadException() throw(); - const char* what() const throw(); - }; - - - class Image - { - private: - static log4cpp::Category& log; - - boost::filesystem::wpath filename; - SDL_Surface* surface; - - void load(void); - - public: - Image(boost::filesystem::wpath filename); - virtual ~Image(); - - SDL_Surface* get_surface(void); - }; -}; - -#endif diff --git a/src/base/texture.cpp b/src/base/texture.cpp deleted file mode 100644 index cf24b9ce..00000000 --- a/src/base/texture.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#include "texture.hpp" - -namespace usdx -{ - log4cpp::Category& Texture::log = - log4cpp::Category::getInstance("usdx.base.texture"); - - Texture::Texture(boost::filesystem::wpath filename) : - filename(filename), texture(0), size(0, 0), rotation(0) - { - Image image(filename); - - size.set_width(image.get_surface()->w); - size.set_height(image.get_surface()->h); - - // // Check that the image dimensions are a power of 2 - // if ((image.get_surface()->w & (image.get_surface()->w - 1)) != 0 ) { - // LOG4CXX_ERROR(log, "" << filename << " has a width of " << image.get_surface()->w << " that is not a power of 2"); - // throw TextureSizeException(size); - // } - - // if ((image.get_surface()->h & (image.get_surface()->h - 1)) != 0 ) { - // LOG4CXX_ERROR(log, "" << filename << " has a height of " << image.get_surface()->h << " that is not a power of 2"); - // throw TextureSizeException(size); - // } - - - switch (image.get_surface()->format->BytesPerPixel) { - case 4: - if (image.get_surface()->format->Rmask == 0x000000ff) { - texture_format = GL_RGBA; - } - else { - texture_format = GL_BGRA; - } - - break; - - case 3: - if (image.get_surface()->format->Rmask == 0x000000ff) { - texture_format = GL_RGB; - } - else { - texture_format = GL_BGR; - } - - break; - - default: - log << log4cpp::Priority::ERROR << "'" << filename << - "' is not in true color! Could not handle that!"; - throw TextureColorDepthException(image.get_surface()->format->BytesPerPixel); - } - - // Have OpenGL generate a texture object handle for us - glGenTextures(1, &texture); - - // Bind the texture object - glBindTexture(GL_TEXTURE_2D, texture); - - // Set the texture's stretching properties - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - - // Edit the texture object's image data using the information SDL_Surface gives us - glTexImage2D(GL_TEXTURE_2D, - 0, - image.get_surface()->format->BytesPerPixel, - image.get_surface()->w, - image.get_surface()->h, - 0, - texture_format, - GL_UNSIGNED_BYTE, - image.get_surface()->pixels); - } - - Texture::~Texture() - { - if (glIsTexture(texture)) { - glDeleteTextures(1, &texture); - } - } - - GLuint Texture::get_texture(void) const - { - return texture; - } -}; diff --git a/src/base/texture.hpp b/src/base/texture.hpp deleted file mode 100644 index 29e3afeb..00000000 --- a/src/base/texture.hpp +++ /dev/null @@ -1,91 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#ifndef TEXTURE_HPP -#define TEXTURE_HPP - -#include <boost/filesystem.hpp> -#include <GL/gl.h> -#include <log4cpp/Category.hh> - -#include "utils/point_3d.hpp" -#include "utils/dimension.hpp" -#include "utils/rectangle.hpp" -#include "image.hpp" -#include "menu/drawable.hpp" - -namespace usdx -{ - class TextureLoadException - { - public: - TextureLoadException() {}; - virtual ~TextureLoadException() {}; - }; - - class TextureSizeException : public TextureLoadException - { - private: - Dimension size; - - public: - TextureSizeException(Dimension size) : size(size) { }; - virtual ~TextureSizeException() { }; - }; - - class TextureColorDepthException : public TextureLoadException - { - private: - unsigned int number_of_colors; - - public: - TextureColorDepthException(unsigned int number_of_colors) : number_of_colors(number_of_colors) {}; - virtual ~TextureColorDepthException() {}; - }; - - class Texture - { - private: - static log4cpp::Category& log; - - boost::filesystem::wpath filename; - - GLuint texture; - GLenum texture_format; - - Dimension size; - - float rotation; ///< radiant (0 - 2*pi) - - public: - Texture(boost::filesystem::wpath filename); - virtual ~Texture(); - - GLuint get_texture(void) const; - }; -}; - -#endif diff --git a/src/base/texture_colorized.cpp b/src/base/texture_colorized.cpp deleted file mode 100644 index 89e3ae54..00000000 --- a/src/base/texture_colorized.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#include "texture_colorized.hpp" - -namespace usdx -{ - -}; diff --git a/src/base/texture_colorized.hpp b/src/base/texture_colorized.hpp deleted file mode 100644 index 56b06112..00000000 --- a/src/base/texture_colorized.hpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#ifndef TEXTURE_COLORIZED_HPP -#define TEXTURE_COLORIZED_HPP - -#include "texture_transparent.hpp" -#include "utils/rgb_color.hpp" - -namespace usdx -{ - /** - * This class represents a texture like TextureTransparent but the hue - * value from the HSV color model is replaced with a different value. - * @see: TextureTransparent - */ - class TextureColorized : public TextureTransparent - { - private: - RgbColor color; - float intensity; - - public: - TextureColorized(); - virtual ~TextureColorized(); - }; -}; - -#endif diff --git a/src/base/texture_transparent.cpp b/src/base/texture_transparent.cpp deleted file mode 100644 index 77aa8a14..00000000 --- a/src/base/texture_transparent.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#include "texture_transparent.hpp" - -namespace usdx -{ - -}; diff --git a/src/base/texture_transparent.hpp b/src/base/texture_transparent.hpp deleted file mode 100644 index dae69d44..00000000 --- a/src/base/texture_transparent.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * UltraStar Deluxe - Karaoke Game - * - * UltraStar Deluxe is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - */ - -#ifndef TEXTURE_TRANSPARENT_HPP -#define TEXTURE_TRANSPARENT_HPP - -#include "texture.hpp" - -namespace usdx -{ - /** - * This class represents a texture like TexturePlain but with the - * ability to set a alpha value to paint this texture transparent. - * @see: Texture - */ - class TextureTransparent : public Texture - { - private: - float alpha; - - public: - TextureTransparent(); - virtual ~TextureTransparent(); - - float get_alpha(void) const; - void set_alpha(float alpha); - }; -}; - -#endif |