sdl2dll
Loading...
Searching...
No Matches
sdl_texture.h
1/*
2 * Clases para manejar texturas en SDL2
3 */
4#ifndef _SDL_TEXTURE
5#define _SDL_TEXTURE
6
7#define EXPORT __declspec(dllexport)
8
9#include <string>
10#include <SDL.h>
11#include <SDL_image.h>
12#include "sdl_renderer.h"
13
14namespace sdl {
15
20class Texture {
21protected:
23 SDL_Texture *texture;
26public:
33 EXPORT Texture(Renderer& render, std::string file) : renderer(render) {
34 texture = IMG_LoadTexture(renderer, file.c_str());
35 rect = Rect(0,0);
36 SDL_QueryTexture(texture, NULL, NULL, &rect.W(), &rect.H());
37 }
43 EXPORT ~Texture() {
44 SDL_DestroyTexture(texture);
45 }
49 EXPORT SDL_Texture* Get() { return texture; }
53 EXPORT operator SDL_Texture*() { return texture; }
59 EXPORT void Draw(Point punto) {
60 rect.X() = punto.X();
61 rect.Y() = punto.Y();
62 SDL_SetRenderTarget(renderer, NULL);
63 SDL_RenderCopy(renderer, texture, NULL, rect.Get());
64 }
65};
66
67} // namespace
68
69#endif // _SDL_TEXTURE
Clase para manipular puntos con coordenadas enteras.
Definition sdl_point.h:20
EXPORT int & X()
Obtiene una referencia a la coordenada x del punto.
Definition sdl_point.h:57
EXPORT int & Y()
Obtiene una referencia a la coordenada y del punto.
Definition sdl_point.h:63
Clase para manipular rectángulos con coordenadas enteras.
Definition sdl_rect.h:21
EXPORT SDL_Rect * Get()
Obtiene un puntero a la estructura SDL_Rect.
Definition sdl_rect.h:50
EXPORT int & H()
Obtiene una referencia a la altura del rectángulo.
Definition sdl_rect.h:80
EXPORT int & X()
Obtiene una referencia a la coordenada x de la esquina superior izquierda.
Definition sdl_rect.h:62
EXPORT int & W()
Obtiene una referencia a la anchura del rectángulo.
Definition sdl_rect.h:74
EXPORT int & Y()
Obtiene una referencia a la coordenada y de la esquina superior izquierda.
Definition sdl_rect.h:68
Clase para manipular un contexto de renderizado.
Definition sdl_renderer.h:29
Clase que encapsula una única textura.
Definition sdl_texture.h:20
EXPORT void Draw(Point punto)
Traslada la textura al punto indicado.
Definition sdl_texture.h:59
Renderer & renderer
Definition sdl_texture.h:22
EXPORT SDL_Texture * Get()
Obtiene un puntero a la estructura SDL_Texture.
Definition sdl_texture.h:49
EXPORT Texture(Renderer &render, std::string file)
Constructor.
Definition sdl_texture.h:33
SDL_Texture * texture
Definition sdl_texture.h:23
Rect rect
Definition sdl_texture.h:24
EXPORT ~Texture()
Destructor.
Definition sdl_texture.h:43
Espacio con nombre para el wrapper de SDL2.
Definition sdl_music.h:14