SDLRenderer.hxx 605 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #ifndef SNAKE_SDLRENDERER_HXX
  3. #define SNAKE_SDLRENDERER_HXX
  4. #include "SDLWindow.hxx"
  5. class SDLRenderer final {
  6. public:
  7. SDLRenderer(SDLWindow& window);
  8. ~SDLRenderer() noexcept;
  9. SDLRenderer(SDLRenderer const&) = delete;
  10. SDLRenderer& operator=(SDLRenderer const&) = delete;
  11. SDLRenderer(SDLRenderer&& src) noexcept;
  12. SDLRenderer& operator=(SDLRenderer&& src) noexcept;
  13. void destroy() noexcept;
  14. operator SDL_Renderer*() const noexcept // NOLINT(*-explicit-constructor)
  15. {
  16. return renderer_;
  17. }
  18. private:
  19. SDL_Renderer* renderer_;
  20. };
  21. #endif // SNAKE_SDLRENDERER_HXX