aboutsummaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2011-12-25 16:18:49 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-05 17:17:50 +0100
commit2636e834c25a42bb2dd01c3c61d075b666dee3bf (patch)
treec4dde3e6751393aeb3bbf5f48e0dc345ee2da997 /src/base
parent6b6a6f4331631bb4ef92a23c80e982f2a6b76109 (diff)
downloadusdx-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.cpp86
-rw-r--r--src/base/image.hpp68
-rw-r--r--src/base/texture.cpp114
-rw-r--r--src/base/texture.hpp91
-rw-r--r--src/base/texture_colorized.cpp32
-rw-r--r--src/base/texture_colorized.hpp52
-rw-r--r--src/base/texture_transparent.cpp32
-rw-r--r--src/base/texture_transparent.hpp53
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