#include "sdlpp_renderer.hpp" namespace SDLPP { Renderer::Renderer( Window &window ) { renderer = SDL_CreateRenderer( window.getWindowPtr(), -1, SDL_RENDERER_ACCELERATED ); if ( renderer == NULL ) { std::cerr << "SDL could not create a renderer! SDL_Error: " << SDL_GetError(); throw "Couldn't create renderer"; } SDL_SetRenderDrawColor( renderer, 0xFF, 0xFF, 0xFF, 0xFF ); } Renderer::~Renderer() { SDL_DestroyRenderer( renderer ); } SDL_Renderer *Renderer::getRendererPtr() { return renderer; } std::pair< int, int > Renderer::getDimensions() const { int width = 0, height = 0; SDL_GetRendererOutputSize( renderer, &width, &height ); return { width, height }; } int Renderer::getWidth() const { return getDimensions().first; } int Renderer::getHeight() const { return getDimensions().second; } int Renderer::getSmallerSide() const { auto dimensions = getDimensions(); return dimensions.first < dimensions.second ? dimensions.first : dimensions.second; } int Renderer::getLargerSide() const { auto dimensions = getDimensions(); return dimensions.first > dimensions.second ? dimensions.first : dimensions.second; } void Renderer::setBlendMode( SDL_BlendMode blendMode ) { SDL_SetRenderDrawBlendMode( renderer, blendMode ); } void Renderer::setRenderColiders( bool render ) { render_coliders = render; } bool Renderer::getRenderColiders() { return render_coliders; } void Renderer::clearRenderer() { SDL_RenderClear( getRendererPtr() ); } void Renderer::presentRenderer() { SDL_RenderPresent( getRendererPtr() ); } } // namespace SDLPP