From fba8184491e0b7ae6fab7ac01b4600d230dc4569 Mon Sep 17 00:00:00 2001 From: marsunet Date: Tue, 21 Dec 2021 17:04:22 -0800 Subject: Initial commit with window demo. --- dxwindow/include/dxwindow.h | 50 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 dxwindow/include/dxwindow.h (limited to 'dxwindow/include') diff --git a/dxwindow/include/dxwindow.h b/dxwindow/include/dxwindow.h new file mode 100644 index 0000000..e8f551a --- /dev/null +++ b/dxwindow/include/dxwindow.h @@ -0,0 +1,50 @@ +#pragma once + +// Include Windows.h before GLFW to avoid macro redefinition warnings. +#define WIN32_LEAN_AND_MEAN +#include + +#define GLFW_INCLUDE_NONE // Do not include OpenGL headers. +#include + +namespace dx +{ + +class Window +{ +public: + ~Window(); + + /// Creates the window. + bool Initialise(int width, int height, const char* title); + + /// Returns the native window handle. + /// If the window has not been initialized, returns an invalid handle. + HWND GetWindowHandle(); + + /// Updates the window by polling for user input. + void Update(); + + /// Returns true if the user tried to close the window, false otherwise. + bool ShouldClose() const; + +private: + GLFWwindow* m_window = nullptr; +}; + +/// Initialise the window subsystem. +/// +/// This function must be called at the start of your application before any +/// Windows are created. +bool WindowInitialise(); + +/// Terminate the window subsystem. +/// +/// This function should be called at the end of your application. Any existing +/// Windows are destroyed and are invalid beyond this call. +void WindowTerminate(); + +/// Returns the last Window error. +const char* GetWindowError(); + +} // namespace dx -- cgit v1.2.3