From 60072c1d8089ffd3294e76636198d14710be95b8 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sat, 9 Sep 2017 07:55:22 +0100 Subject: Restructuring --- yage/base/window.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 yage/base/window.h (limited to 'yage/base/window.h') diff --git a/yage/base/window.h b/yage/base/window.h new file mode 100644 index 00000000..8639e075 --- /dev/null +++ b/yage/base/window.h @@ -0,0 +1,55 @@ +/* ---------------------------------------------------------------------------- + * window.h + * + * Copyright (c) 2017 Yann Herklotz Grave -- MIT License + * See file LICENSE for more details + * ---------------------------------------------------------------------------- + */ + +#ifndef WINDOW_H +#define WINDOW_H + +#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 -- cgit