sdl2dll
Loading...
Searching...
No Matches
sdl_renderer.h
1/*
2 * Clases para manejar renderers en SDL2
3 * SDL_CreateRenderer
4 * SDL_DestroyRenderer
5 * SDL_SetRenderDrawColor
6 * SDL_RenderClear
7 * SDL_RenderDrawLineF
8 * SDL_RenderDrawPointF
9 * SDL_RenderPresent
10 */
11#ifndef _SDL_RENDERER
12#define _SDL_RENDERER
13
14#define EXPORT __declspec(dllexport)
15
16#include <vector>
17#include <SDL.h>
18#include "sdl_window.h"
19#include "sdl_color.h"
20#include "sdl_point.h"
21#include "sdl_rect.h"
22
23namespace sdl {
24
29class Renderer {
30protected:
31 SDL_Renderer *renderer;
33public:
37 EXPORT Renderer() : renderer(NULL) {}
43 EXPORT Renderer(Window &window, SDL_RendererFlags flags) {
44 renderer = SDL_CreateRenderer(window, -1, flags);
45 }
51 EXPORT ~Renderer() {
52 SDL_DestroyRenderer(renderer);
53 }
57 EXPORT operator SDL_Renderer*() { return renderer; }
66 EXPORT void SetDrawColor(Uint8 r, Uint8 g, Uint8 b, Uint8 a) {
67 SDL_SetRenderDrawColor(renderer, r, g, b, a);
68 }
74 EXPORT void SetDrawColor(const Color& color) {
75 SDL_SetRenderDrawColor(renderer, color.GetR(), color.GetG(), color.GetB(), color.GetA());
76 }
80 EXPORT void Clear() {
81 SDL_RenderClear(renderer);
82 }
90 EXPORT void DrawLinesF( std::vector<FPoint>& puntos) const {
91// SDL_RenderDrawLinesF(renderer, &puntos[0], puntos.size());
92 for(size_t i=0; i<puntos.size()-1; i++) {
93 SDL_RenderDrawLineF(renderer, puntos[i].X(), puntos[i].Y(), puntos[i+1].X(), puntos[i+1].Y());
94 }
95 }
101 EXPORT void DrawFPoint(FPoint punto) {
102 SDL_RenderDrawPointF(renderer, punto.X(), punto.Y());
103 }
109 EXPORT void DrawPoint(Point punto) {
110 SDL_RenderDrawPoint(renderer, punto.X(), punto.Y());
111 }
117 EXPORT void DrawFRect(FRect re) {
118 SDL_RenderDrawRectF(renderer, re.Get());
119 }
125 EXPORT void DrawRect(Rect re) {
126 SDL_RenderDrawRect(renderer, re.Get());
127 }
133 EXPORT void FillFRect(FRect re) {
134 SDL_RenderFillRectF(renderer, re.Get());
135 }
141 EXPORT void FillRect(Rect re) {
142 SDL_RenderFillRect(renderer, re.Get());
143 }
147 EXPORT void Present() {
148 SDL_RenderPresent(renderer);
149 }
150};
151
152} // namespace
153
154#endif // _SDL_RENDERER
Encapsula un color.
Definition sdl_color.h:18
EXPORT Uint8 GetG() const
Obtiene la componente verde.
Definition sdl_color.h:61
EXPORT Uint8 GetA() const
Obtiene la componente alfa.
Definition sdl_color.h:73
EXPORT Uint8 GetB() const
Obtiene la componente azul.
Definition sdl_color.h:67
EXPORT Uint8 GetR() const
Obtiene la componente roja.
Definition sdl_color.h:55
Clase para manipular puntos con coordenadas float.
Definition sdl_point.h:70
EXPORT float & X()
Obtiene una referencia a la coordenada x del punto.
Definition sdl_point.h:116
EXPORT float & Y()
Obtiene una referencia a la coordenada y del punto.
Definition sdl_point.h:122
Clase para manipular rectángulos con coordenadas en coma flotante.
Definition sdl_rect.h:87
EXPORT SDL_FRect * Get()
Obtiene un puntero a la estructura SDL_FRect.
Definition sdl_rect.h:116
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
Clase para manipular un contexto de renderizado.
Definition sdl_renderer.h:29
EXPORT void DrawPoint(Point punto)
Dibuja un punto.
Definition sdl_renderer.h:109
EXPORT void SetDrawColor(const Color &color)
Establece el color para las operaciones de trazado de puntos y figuras.
Definition sdl_renderer.h:74
EXPORT void DrawFRect(FRect re)
Dibuja un rectángulo.
Definition sdl_renderer.h:117
EXPORT Renderer(Window &window, SDL_RendererFlags flags)
Constructor.
Definition sdl_renderer.h:43
EXPORT void DrawLinesF(std::vector< FPoint > &puntos) const
Dibuja las líneas contenidas en un vector de puntos.
Definition sdl_renderer.h:90
EXPORT void DrawRect(Rect re)
Dibuja un rectángulo.
Definition sdl_renderer.h:125
SDL_Renderer * renderer
Definition sdl_renderer.h:31
EXPORT void DrawFPoint(FPoint punto)
Dibuja un punto.
Definition sdl_renderer.h:101
EXPORT void SetDrawColor(Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Establece el color para las operaciones de trazado de puntos y figuras.
Definition sdl_renderer.h:66
EXPORT void FillRect(Rect re)
Dibuja un rectángulo relleno.
Definition sdl_renderer.h:141
EXPORT void Clear()
Borra el contenido del contexto de renderizado.
Definition sdl_renderer.h:80
EXPORT ~Renderer()
Destructor.
Definition sdl_renderer.h:51
EXPORT void FillFRect(FRect re)
Dibuja un rectángulo relleno.
Definition sdl_renderer.h:133
EXPORT void Present()
Actualiza la pantalla con cualquier renderización realizada desde la llamada anterior.
Definition sdl_renderer.h:147
EXPORT Renderer()
Constructor por defecto.
Definition sdl_renderer.h:37
Clase que encapsula una ventana SDL2.
Definition sdl_window.h:21
Espacio con nombre para el wrapper de SDL2.
Definition sdl_music.h:14