SDLWindow.hxx 616 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #ifndef SNAKE_SDLWINDOW_HXX
  3. #define SNAKE_SDLWINDOW_HXX
  4. #include "SDL.hxx"
  5. #include <string_view>
  6. #include <boost/noncopyable.hpp>
  7. class SDLWindow final : private boost::noncopyable {
  8. public:
  9. SDLWindow(std::string_view title, int x, int y, int w, int h, std::uint32_t flags = 0u);
  10. ~SDLWindow() noexcept;
  11. SDLWindow(SDLWindow&& src) noexcept;
  12. SDLWindow& operator=(SDLWindow&& src) noexcept;
  13. void destroy() noexcept;
  14. operator SDL_Window*() const noexcept // NOLINT(*-explicit-constructor)
  15. {
  16. return window_;
  17. }
  18. private:
  19. SDL_Window* window_;
  20. };
  21. #endif // SNAKE_SDLWINDOW_HXX