forked from jaildesigner-jailgames/jaildoctors_dilemma
62 lines
1.6 KiB
C++
62 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <SDL2/SDL.h>
|
|
#include <stdio.h>
|
|
#include <string>
|
|
|
|
#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 = nullptr, float zoomW = 1, float zoomH = 1, double angle = 0.0, SDL_Point *center = nullptr, 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
|