SDLRenderer.hxx 576 B

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