#include "screen.h" #include "const.h" // Constructor Screen::Screen(SDL_Window *window, SDL_Renderer *renderer) { mWindow = window; mRenderer = renderer; mRealScreenWidth = REAL_SCREEN_WIDTH; mRealScreenHeight = REAL_SCREEN_HEIGHT; mScreenWidth = SCREEN_WIDTH; mScreenHeight = SCREEN_HEIGHT; mBorderX = (REAL_SCREEN_WIDTH - SCREEN_WIDTH) / 2; mBorderY = (REAL_SCREEN_HEIGHT - SCREEN_HEIGHT) / 2; mGameCanvas = SDL_CreateTexture(mRenderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, SCREEN_WIDTH, SCREEN_HEIGHT); if (mGameCanvas == NULL) printf("TitleSurface could not be created!\nSDL Error: %s\n", SDL_GetError()); } // Destructor Screen::~Screen() { mRenderer = nullptr; } // Limpia la pantalla void Screen::clean() { SDL_SetRenderDrawColor(mRenderer, 0x27, 0x27, 0x36, 0xFF); SDL_RenderClear(mRenderer); SDL_SetRenderTarget(mRenderer, mGameCanvas); SDL_SetRenderDrawColor(mRenderer, 0xAA, 0x44, 0x44, 0xFF); SDL_RenderClear(mRenderer); } // Vuelca el contenido del renderizador en pantalla void Screen::blit() { SDL_Rect src = {0, 0, SCREEN_WIDTH, SCREEN_HEIGHT}; SDL_Rect dest = {mBorderX, mBorderY, SCREEN_WIDTH, SCREEN_HEIGHT}; SDL_SetRenderTarget(mRenderer, NULL); SDL_RenderCopy(mRenderer, mGameCanvas, NULL, &dest); SDL_RenderPresent(mRenderer); }