SDLRenderer.cxx 807 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "SDLRenderer.hxx"
  2. SDLRenderer::SDLRenderer(SDLWindow& window)
  3. {
  4. renderer_ = SDL_CreateRenderer(window, 0, SDL_RENDERER_ACCELERATED);
  5. if (renderer_==nullptr) {
  6. throw SDLError("Failed to create renderer");
  7. }
  8. SDL_RenderSetVSync(renderer_, SDL_TRUE);
  9. SDL_Log("Created renderer successfully.");
  10. }
  11. SDLRenderer::~SDLRenderer() noexcept
  12. {
  13. destroy();
  14. }
  15. SDLRenderer::SDLRenderer(SDLRenderer&& src) noexcept
  16. :renderer_{src.renderer_}
  17. {
  18. src.renderer_ = nullptr;
  19. }
  20. SDLRenderer& SDLRenderer::operator=(SDLRenderer&& src) noexcept
  21. {
  22. destroy();
  23. std::swap(renderer_, src.renderer_);
  24. return *this;
  25. }
  26. void SDLRenderer::destroy() noexcept
  27. {
  28. if (renderer_!=nullptr) {
  29. SDL_DestroyRenderer(renderer_);
  30. SDL_Log("Destroyed renderer successfully.");
  31. renderer_ = nullptr;
  32. }
  33. }