/* ---------------------------------------------------------------------------- * window.hpp * * Copyright (c) 2017 Yann Herklotz Grave -- MIT License * See file LICENSE for more details * ---------------------------------------------------------------------------- */ #ifndef WINDOW_HPP #define WINDOW_HPP #include #include namespace yage { // window flags that can change it's appearance enum WindowFlags : unsigned { SHOWN = 0x1, HIDDEN = 0x2, FULLSCREEN = 0x4, BORDERLESS = 0x8, }; // window wrapper around SDL_Window pointer class Window { private: /// window handle SDL_Window* window_ = nullptr; public: Window(); Window(const Window&) = delete; Window(Window&&) = delete; /// destroys the window handle ~Window(); Window& operator=(const Window&) = delete; Window& operator=(Window&&) = delete; /// create the window, initialize the handle and update the width and height void create(const std::string& window_name, int width, int height, unsigned flags = WindowFlags::SHOWN); /// swap the buffer void swapBuffer(); /// clear buffer void clearBuffer(); }; } // namespace yage #endif