#include"texture.h" Texture::Texture(){ //Initialize variables szW = 0; szH = 0; IMG_Init(IMG_INIT_PNG); //Set renderer }; void Texture::setRenderer(SDL_Renderer** render){ renderer = render; }; Texture::~Texture(){ //Deallocate //free(); }; void Texture::loadTexture(std::string path){ //Get rid of preexisting texture free(); //Load image at specified path SDL_Surface* loadedSurface = IMG_Load( path.c_str() ); if(loadedSurface == NULL){ std::cout << "Couldn't load " << path.c_str() << std::endl; } else{ //Create texture from surface pixels texture = SDL_CreateTextureFromSurface (*renderer,loadedSurface); if(texture == NULL){ std::cout << "Couldn't to create texture from " << path.c_str() << std::endl; } else{ //Get image dimensions szW = loadedSurface->w; szH = loadedSurface->h; } //Get rid of old loaded surface SDL_FreeSurface(loadedSurface); } }; void Texture::free(){ //Free texture if it exists if(texture != NULL){ SDL_DestroyTexture(texture); texture = NULL; szW = 0; szH = 0; } }; void Texture::render(SDL_Rect* quad,SDL_Rect* frame){ //void Texture::render(SDL_Rect* quad){ //Set clip rendering dimensions /*if(frame != NULL){ quad.w = frame->w; quad.h = frame->h; }*/ //Render to screen SDL_RenderCopy(*renderer,texture,frame,quad); //SDL_RenderFillRect(*renderer,quad); //std::cout << "ye" << std::endl; }; void Texture::render(SDL_Rect* quad){ SDL_Rect frame = {0,0,quad->w,quad->h}; SDL_RenderCopy(*renderer,texture,&frame,quad); }; int Texture::getWidth(){ return szW; }; int Texture::getHeight(){ return szH; };