// Copyright (c) 2022 Yevhen Babiichuk (DustDFG), <dfgdust@gmail.com>.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

#include "Screen.h"

#include <cstdint>

#include <SDL_video.h>
#include <SDL_render.h>
#include <SDL_rect.h>

Screen::Screen(SDL_Window* window)
{
	this->renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

	SDL_GetRendererOutputSize(this->renderer, &this->width, &this->height);
}

Screen::~Screen()
{
	SDL_DestroyRenderer(this->renderer);
}

void Screen::clear()
{
	SDL_SetRenderDrawColor(this->renderer, 0xff, 0xff, 0xff, 0xff);
	SDL_RenderClear(this->renderer);
}


void Screen::update()
{
	SDL_RenderPresent(this->renderer);
}

void Screen::drawRect(SDL_FRect* rect, uint8_t r, uint8_t g, uint8_t b, uint8_t a)
{
	SDL_SetRenderDrawColor(this->renderer, r, g, b, a);
	SDL_RenderFillRectF(this->renderer, rect);
}
