#pragma once
#include "ifdefs.h"
#include "utils.h"

#ifndef SCREEN_H
#define SCREEN_H

// Clase Screen
class Screen
{
private:
	SDL_Window *mWindow;	  // Ventana de la aplicación
	SDL_Renderer *mRenderer;  // El renderizador de la ventana
	SDL_Texture *mGameCanvas; // Textura para completar la ventana de juego hasta la pantalla completa

	int mScreenWidth;	   // Ancho de la pantalla
	int mScreenHeight;	   // Alto de la pantalla
	int mGameCanvasWidth;  // Ancho de la textura donde se dibuja el juego
	int mGameCanvasHeight; // Alto de la textura donde se dibuja el juego
	int mGameCanvasPosX;   // Posicion en el eje X donde se dibujará la textura del juego dentro de la pantalla
	int mGameCanvasPosY;   // Posicion en el eje Y donde se dibujará la textura del juego dentro de la pantalla

	color_t mBorderColor; // Color del borde añadido a la textura de juego para rellenar la pantalla

public:
	// Constructor
	Screen(SDL_Window *windows, SDL_Renderer *renderer);

	// Destructor
	~Screen();

	// Limpia la pantalla
	void clean(color_t color);

	// Prepara para empezar a dibujar en la textura de juego
	void start();

	// Vuelca el contenido del renderizador en pantalla
	void blit();
};

#endif
