diff options
Diffstat (limited to 'texturesdl.cpp')
-rw-r--r-- | texturesdl.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/texturesdl.cpp b/texturesdl.cpp new file mode 100644 index 0000000..bab760b --- /dev/null +++ b/texturesdl.cpp @@ -0,0 +1,23 @@ +#include <stdexcept> +#include <SDL/SDL_image.h> +#include <SDL/SDL_opengl.h> +#include "texturesdl.h" + +TextureSDL::TextureSDL(const char* filename) { + SDL_Surface* image = IMG_Load(filename); + + width = image->w; + height = image->h; + + if(image->format->BytesPerPixel == 4) { + format = image->format->Bshift ? GL_RGBA : GL_BGRA; + } else { + format = image->format->Bshift ? GL_RGB : GL_BGR; + } + + data = (unsigned char*)image->pixels; + + build(); + + SDL_FreeSurface(image); +} |