#pragma once #include #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