#pragma once #include #include #include #ifndef LTEXTURE_H #define LTEXTURE_H // Clase LTexture class LTexture { private: SDL_Texture *texture; // La textura SDL_Renderer *renderer; // Renderizador donde dibujar la textura int width; // Ancho de la imagen int height; // Alto de la imagen std::string path; // Ruta de la imagen de la textura public: // Constructor LTexture(SDL_Renderer *renderer, std::string path = ""); // Destructor ~LTexture(); // Carga una imagen desde un fichero bool loadFromFile(std::string path, SDL_Renderer *renderer); // Crea una textura en blanco bool createBlank(SDL_Renderer *renderer, int width, int height, SDL_TextureAccess = SDL_TEXTUREACCESS_STREAMING); // Libera la memoria de la textura void unload(); // Establece el color para la modulacion void setColor(Uint8 red, Uint8 green, Uint8 blue); // Establece el blending void setBlendMode(SDL_BlendMode blending); // Establece el alpha para la modulación void setAlpha(Uint8 alpha); // Renderiza la textura en un punto específico void render(SDL_Renderer *renderer, int x, int y, SDL_Rect *clip = NULL, float zoomW = 1, float zoomH = 1, double angle = 0.0, SDL_Point *center = NULL, SDL_RendererFlip flip = SDL_FLIP_NONE); // Establece la textura como objetivo de renderizado void setAsRenderTarget(SDL_Renderer *renderer); // Obtiene el ancho de la imagen int getWidth(); // Obtiene el alto de la imagen int getHeight(); // Recarga la textura bool reLoad(); }; #endif