#include "SDLRenderer.hxx" SDLRenderer::SDLRenderer(SDLWindow& window) { renderer_ = SDL_CreateRenderer(window, 0, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); if (renderer_==nullptr) { throw SDLError("Failed to create renderer."); } SDL_SetRenderDrawBlendMode(renderer_, SDL_BLENDMODE_BLEND); SDL_Log("Created renderer successfully."); } SDLRenderer::~SDLRenderer() noexcept { destroy(); } SDLRenderer::SDLRenderer(SDLRenderer&& src) noexcept :renderer_{src.renderer_} { src.renderer_ = nullptr; } SDLRenderer& SDLRenderer::operator=(SDLRenderer&& src) noexcept { destroy(); std::swap(renderer_, src.renderer_); return *this; } void SDLRenderer::destroy() noexcept { if (renderer_!=nullptr) { SDL_DestroyRenderer(renderer_); SDL_Log("Destroyed renderer successfully."); renderer_ = nullptr; } }