summaryrefslogtreecommitdiffstats
path: root/src/Texture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Texture.cpp')
-rw-r--r--src/Texture.cpp91
1 files changed, 0 insertions, 91 deletions
diff --git a/src/Texture.cpp b/src/Texture.cpp
deleted file mode 100644
index 5693682..0000000
--- a/src/Texture.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "Texture.hpp"
-
-#include <SDL.h>
-#include <SDL_image.h>
-#include <easylogging++.h>
-
-
-bool IsImgInitialized = false;
-
-Texture::Texture(std::string filename, GLenum textureWrapping, GLenum textureFiltering) {
- glGenTextures(1, &texture);
- glBindTexture(GL_TEXTURE_2D, texture);
-
- //Texture options
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, textureWrapping);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, textureWrapping);
-
- //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-
- //Initialize SDL2_image
- if (!IsImgInitialized) {
- IsImgInitialized = true;
- int imgFlags = IMG_INIT_PNG;
- if (!(IMG_Init(imgFlags) & imgFlags))
- {
- throw std::runtime_error("IMG Not initialized: " + std::string(IMG_GetError()));
- }
- }
-
- //Load image
- SDL_Surface *image = IMG_Load(filename.c_str());
- if (!image)
- throw std::runtime_error("Image not loaded: " + std::string(IMG_GetError()));
-
- if (image->format->BytesPerPixel != 4)
- throw std::runtime_error("PNG format is not RGBA");
-
- //Flip surface
- SDL_LockSurface(image);
-
- {
- int pitch = image->pitch;
- int height = image->h;
- void* image_pixels = image->pixels;
-
- int index;
- void* temp_row;
- int height_div_2;
-
- temp_row = (void *)malloc(pitch);
- if (!temp_row)
- throw std::runtime_error("Not enough memory for texture flipping");
-
- height_div_2 = (int)(height * .5);
- for (index = 0; index < height_div_2; index++) {
- memcpy((Uint8 *)temp_row,
- (Uint8 *)(image_pixels)+
- pitch * index,
- pitch);
-
- memcpy(
- (Uint8 *)(image_pixels)+
- pitch * index,
- (Uint8 *)(image_pixels)+
- pitch * (height - index - 1),
- pitch);
- memcpy(
- (Uint8 *)(image_pixels)+
- pitch * (height - index - 1),
- temp_row,
- pitch);
- }
- free(temp_row);
- }
-
- //Creating texture
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image->w,image->h, 0, GL_RGBA, GL_UNSIGNED_BYTE,
- (GLvoid *) image->pixels);
- SDL_UnlockSurface(image);
-
- //glGenerateMipmap(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D, 0);
-
- SDL_FreeSurface(image);
-}
-
-Texture::~Texture() {
- glDeleteTextures(1, &texture);
-}