Index

zydeco / f2ac8af

Experiment in graphics programming, C++, OpenGL, simulation techniques.

Latest Commit

{#}TimeHashSubjectAuthor#(+)(-)GPG?
304 Aug 2023 22:32f2ac8afCreate base Engine classJosh Stockin1154G

Blob @ zydeco / include / Window.hpp

text/plain825 bytesdownload raw
1#ifndef WINDOW_HPP_
2#define WINDOW_HPP_
3
4#include <cstdint>
5#include <SDL2/SDL.h>
6#include "IUpdateable.hpp"
7
8class Window : public IUpdateable
9{
10public:
11 Window(std::string title, uint64_t sdl_window_flags);
12 ~Window();
13
14 // Basic public interface
15 bool Update(uint64_t time_since_last_update_us);
16 void SetTitle(std::string new_title);
17 void SetFullscreen(bool is_fullscreen);
18 void SetSize(uint64_t new_width, uint64_t new_height);
19 void SetPosition(uint64_t new_x, uint64_t new_y);
20 bool HandleEvents();
21
22protected:
23 // One-time SDL_Init()
24 static bool s_sdlInitialized;
25 static void _SdlInitialize();
26
27 // Window object info
28 SDL_Window *m_pSdlWindow;
29 SDL_Renderer *m_pSdlRenderer;
30 SDL_GLContext m_pGlContext;
31 std::string m_windowTitle;
32};
33
34#endif /* WINDOW_HPP_ */
35