#include <SDL/SDL_image.h>
#include "Dispatcher.hh"
+#include "Exception.hh"
+#include "Library.hh"
#include "Log.hh"
-#include "Mippleton.hh"
#include "OpenGL.hh"
#include "Texture.hh"
* objects and avoid having duplicate textures loaded to GL.
*/
-class Texture::Impl : public Mippleton<Impl>
+class Texture::Impl : public Library<Impl>
{
/**
*/
explicit Impl(const std::string& name) :
- Mippleton<Impl>(name),
+ Library<Impl>(name),
mContext(0),
mWidth(0),
mHeight(0),
if (!surface)
{
logWarning("texture not found: %s", getName().c_str());
- throw Exception(Exception::FILE_NOT_FOUND);
+ throw Exception(ErrorCode::FILE_NOT_FOUND, getName().c_str());
}
SDL_Surface* temp = prepareImageForGL(surface);
if (!temp)
{
- throw Exception(Exception::OPENGL_ERROR);
+ throw Exception(ErrorCode::UNKNOWN_IMAGE_FORMAT);
}
if (temp->format->BytesPerPixel == 3)
else
{
SDL_FreeSurface(temp);
- throw Exception(Exception::BAD_IMAGE_FORMAT);
+ throw Exception(ErrorCode::UNKNOWN_IMAGE_FORMAT);
}
mWidth = temp->w;
glBindTexture(GL_TEXTURE_2D, mObject);
glTexImage2D
+ //gluBuild2DMipmaps
(
GL_TEXTURE_2D,
0,
mMode,
+ //3,
mContext->w,
mContext->h,
0,