SDLWindow.hxx 637 B

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