57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include <SDL2/SDL.h>
|
|
#include "utils.h"
|
|
|
|
#ifndef SCREEN_H
|
|
#define SCREEN_H
|
|
|
|
struct anchor_t
|
|
{
|
|
int left; // Parte izquierda de la pantalla de juego
|
|
int right; // Parte drecha de la pantalla de juego
|
|
int center; // Parte central horizontal de la pantalla de juego
|
|
int top; // Parte superior de la pantalla de juego
|
|
int bottom; // Parte infoerior de la pantalla de juego
|
|
int middle; // Parte central vertical de la pantalla de juego
|
|
};
|
|
|
|
// Clase Screen
|
|
class Screen
|
|
{
|
|
private:
|
|
SDL_Window *window; // Ventana de la aplicación
|
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
|
SDL_Texture *gameCanvas; // Textura para completar la ventana de juego hasta la pantalla completa
|
|
options_t *options; // Variable con todas las opciones del programa
|
|
|
|
int screenWidth; // Ancho de la pantalla o ventana
|
|
int screenHeight; // Alto de la pantalla o ventana
|
|
int gameCanvasWidth; // Resolución interna del juego. Es el ancho de la textura donde se dibuja el juego
|
|
int gameCanvasHeight; // Resolución interna del juego. Es el alto de la textura donde se dibuja el juego
|
|
anchor_t anchor; // Variable con los anclajes de la pantalla
|
|
SDL_Rect dest; // Coordenadas donde se va a dibujar la textura del juego sobre la pantalla o ventana
|
|
color_t borderColor; // Color del borde añadido a la textura de juego para rellenar la pantalla
|
|
|
|
public:
|
|
// Constructor
|
|
Screen(SDL_Window *window, SDL_Renderer *renderer, options_t *options, int gameInternalResX, int gameInternalResY);
|
|
|
|
// Destructor
|
|
~Screen();
|
|
|
|
// Limpia la pantalla
|
|
void clean(color_t color = {0x00, 0x00, 0x00});
|
|
|
|
// Prepara para empezar a dibujar en la textura de juego
|
|
void start();
|
|
|
|
// Vuelca el contenido del renderizador en pantalla
|
|
void blit();
|
|
|
|
// Establece el modo de video
|
|
void setVideoMode(int fullScreenMode);
|
|
};
|
|
|
|
#endif
|