From 9a84e0409fcde1a904825a7d8c2ed9026808fa7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Mon, 9 Nov 2020 22:36:36 +0100 Subject: [PATCH] Added a way to create window platform independant --- GlitchyEngine/src/Application.bf | 3 +-- GlitchyEngine/src/Platform/Windows/WindowsWindow.bf | 8 ++++++++ GlitchyEngine/src/Window.bf | 6 ++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/GlitchyEngine/src/Application.bf b/GlitchyEngine/src/Application.bf index 0473710..fe64c8a 100644 --- a/GlitchyEngine/src/Application.bf +++ b/GlitchyEngine/src/Application.bf @@ -14,8 +14,7 @@ namespace GlitchyEngine public this() { - // Todo: make Platform independent - _window = new WindowsWindow(WindowDescription()); + _window = Window.CreateWindow(WindowDescription()); _window.EventCallback = new => OnEvent; } diff --git a/GlitchyEngine/src/Platform/Windows/WindowsWindow.bf b/GlitchyEngine/src/Platform/Windows/WindowsWindow.bf index f1118c8..e06f578 100644 --- a/GlitchyEngine/src/Platform/Windows/WindowsWindow.bf +++ b/GlitchyEngine/src/Platform/Windows/WindowsWindow.bf @@ -108,6 +108,14 @@ namespace GlitchyEngine.Platform.Windows set; } +#if GE_WINDOWS + [Export, LinkName("GlitchyEngine.Window.CreateWindow")] + public static new Window CreateWindow(WindowDescription description) + { + return new WindowsWindow(description); + } +#endif + public this(WindowDescription desc) { _minMaxInfo.MaximumTrackingSize.x = int32.MaxValue; diff --git a/GlitchyEngine/src/Window.bf b/GlitchyEngine/src/Window.bf index b0e7dc8..9ac2647 100644 --- a/GlitchyEngine/src/Window.bf +++ b/GlitchyEngine/src/Window.bf @@ -34,6 +34,12 @@ namespace GlitchyEngine protected EventCallback _eventCallback ~ delete _; + /** + * Function used to create a platform specific window. + */ + [LinkName("GlitchyEngine.Window.CreateWindow")] + public static extern Window CreateWindow(WindowDescription description); + /** * Gets or Sets the minimum width of the window. */