// // Created by jovian on 16/07/17. // #include "texturer.h" void logSDLError(std::ostream &os, const std::string &msg) { os << msg << " error: " << SDL_GetError() << std::endl; } SDL_Texture *loadTexture(const std::string &file, SDL_Renderer *ren) { SDL_Texture *texture = IMG_LoadTexture(ren, file.c_str()); if (texture == nullptr) { logSDLError(std::cout, "LoadTexture"); } return texture; } void renderTexture(SDL_Texture *tex, SDL_Renderer *ren, int x, int y, bool centered) { int w, h; SDL_QueryTexture(tex, NULL, NULL, &w, &h); renderTexture(tex, ren, x, y, w, h, centered); } void renderTexture(SDL_Texture *tex, SDL_Renderer *ren, int x, int y, int w, int h, bool centered) { SDL_Rect dst; dst.x = x; dst.y = y; dst.w = w; dst.h = h; if (centered) { dst.x -= dst.w / 2; dst.y -= dst.h / 2; } SDL_RenderCopy(ren, tex, NULL, &dst); } void renderTexture(SDL_Texture *tex, SDL_Renderer *ren, int x, int y, double angle, bool centered) { int w, h; SDL_QueryTexture(tex, NULL, NULL, &w, &h); renderTexture(tex, ren, x, y, angle, w, h, centered); } void renderTexture(SDL_Texture *tex, SDL_Renderer *ren, int x, int y, double angle, int w, int h, bool centered) { SDL_Rect dst; dst.x = x; dst.y = y; dst.w = w; dst.h = h; if (centered) { dst.x -= dst.w / 2; dst.y -= dst.h / 2; } SDL_RenderCopyEx(ren, tex, NULL, &dst, angle, NULL, SDL_FLIP_NONE); }