mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
Window platform implementation now via extension
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using GlitchyEngine.Events;
|
using GlitchyEngine.Events;
|
||||||
using GlitchyEngine.Platform.Windows;
|
|
||||||
using GlitchyEngine.Platform.DX11;
|
using GlitchyEngine.Platform.DX11;
|
||||||
using GlitchyEngine.ImGui;
|
using GlitchyEngine.ImGui;
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace GlitchyEngine
|
|||||||
/// Windows (WinApi) specific implementation of the Input-class
|
/// Windows (WinApi) specific implementation of the Input-class
|
||||||
extension Input
|
extension Input
|
||||||
{
|
{
|
||||||
/// Represents the state of the input devices on the windows plattform (WinApi that is).
|
/// Represents the state of the input devices on the windows platform (WinApi that is).
|
||||||
struct WindowsInputState
|
struct WindowsInputState
|
||||||
{
|
{
|
||||||
public int8[256] KeyStates;
|
public int8[256] KeyStates;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#if GE_WINDOWS
|
||||||
using System;
|
using System;
|
||||||
using DirectX.Common;
|
using DirectX.Common;
|
||||||
using DirectX.Windows;
|
using DirectX.Windows;
|
||||||
@@ -12,20 +13,8 @@ using static System.Windows;
|
|||||||
|
|
||||||
namespace GlitchyEngine
|
namespace GlitchyEngine
|
||||||
{
|
{
|
||||||
#if GE_WINDOWS
|
/// The windows specific Window implementation
|
||||||
public extension Window
|
public extension Window
|
||||||
{
|
|
||||||
public static override Window CreateWindow(WindowDescription description)
|
|
||||||
{
|
|
||||||
return new GlitchyEngine.Platform.Windows.WindowsWindow(description);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace GlitchyEngine.Platform.Windows
|
|
||||||
{
|
|
||||||
public class WindowsWindow : Window
|
|
||||||
{
|
{
|
||||||
private Windows.HInstance _instanceHandle;
|
private Windows.HInstance _instanceHandle;
|
||||||
private Windows.HWnd _windowHandle;
|
private Windows.HWnd _windowHandle;
|
||||||
@@ -135,8 +124,6 @@ namespace GlitchyEngine.Platform.Windows
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override StringView Title
|
public override StringView Title
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -158,7 +145,7 @@ namespace GlitchyEngine.Platform.Windows
|
|||||||
|
|
||||||
public override void* NativeWindow => (void*)(int)_windowHandle;
|
public override void* NativeWindow => (void*)(int)_windowHandle;
|
||||||
|
|
||||||
public this(WindowDescription desc)
|
public override this(WindowDescription desc)
|
||||||
{
|
{
|
||||||
_minMaxInfo.MaximumTrackingSize.x = int32.MaxValue;
|
_minMaxInfo.MaximumTrackingSize.x = int32.MaxValue;
|
||||||
_minMaxInfo.MaximumTrackingSize.y = int32.MaxValue;
|
_minMaxInfo.MaximumTrackingSize.y = int32.MaxValue;
|
||||||
@@ -215,7 +202,7 @@ namespace GlitchyEngine.Platform.Windows
|
|||||||
private static LRESULT MessageHandler(HWND hwnd, uint32 uMsg, WPARAM wParam, LPARAM lParam)
|
private static LRESULT MessageHandler(HWND hwnd, uint32 uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
void* windowPtr = (void*)GetWindowLongPtrW(hwnd, GWL_USERDATA);
|
void* windowPtr = (void*)GetWindowLongPtrW(hwnd, GWL_USERDATA);
|
||||||
WindowsWindow window = (WindowsWindow)Internal.UnsafeCastToObject(windowPtr);
|
Window window = (Window)Internal.UnsafeCastToObject(windowPtr);
|
||||||
|
|
||||||
if (window == null)
|
if (window == null)
|
||||||
{
|
{
|
||||||
@@ -472,3 +459,4 @@ namespace GlitchyEngine.Platform.Windows
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using GlitchLog;
|
using GlitchLog;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using GlitchyEngine.Platform.Windows;
|
|
||||||
|
|
||||||
//using imgui_beef;
|
|
||||||
|
|
||||||
namespace GlitchyEngine
|
namespace GlitchyEngine
|
||||||
{
|
{
|
||||||
|
|||||||
+20
-22
@@ -28,70 +28,73 @@ namespace GlitchyEngine
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract class Window
|
public class Window
|
||||||
{
|
{
|
||||||
public delegate void EventCallback(Event e);
|
public delegate void EventCallback(Event e);
|
||||||
|
|
||||||
protected EventCallback _eventCallback ~ delete _;
|
protected EventCallback _eventCallback ~ delete _;
|
||||||
|
|
||||||
|
public extern this(WindowDescription windowDescription);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the minimum width of the window.
|
* Gets or Sets the minimum width of the window.
|
||||||
*/
|
*/
|
||||||
public abstract int32 MinWidth {get; set;}
|
public extern int32 MinWidth {get; set;}
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the minimum height of the window.
|
* Gets or Sets the minimum height of the window.
|
||||||
*/
|
*/
|
||||||
public abstract int32 MinHeight {get; set;}
|
public extern int32 MinHeight {get; set;}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the maximum width of the window.
|
* Gets or Sets the maximum width of the window.
|
||||||
*/
|
*/
|
||||||
public abstract int32 MaxWidth {get; set;}
|
public extern int32 MaxWidth {get; set;}
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the maximum height of the window.
|
* Gets or Sets the maximum height of the window.
|
||||||
*/
|
*/
|
||||||
public abstract int32 MaxHeight {get; set;}
|
public extern int32 MaxHeight {get; set;}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the width and height of the window.
|
* Gets or Sets the width and height of the window.
|
||||||
*/
|
*/
|
||||||
public abstract Point Size {get; set;}
|
public extern Point Size {get; set;}
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the width of the window.
|
* Gets or Sets the width of the window.
|
||||||
*/
|
*/
|
||||||
public abstract int32 Width {get; set;}
|
public extern int32 Width {get; set;}
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the height of the window.
|
* Gets or Sets the height of the window.
|
||||||
*/
|
*/
|
||||||
public abstract int32 Height {get; set;}
|
public extern int32 Height {get; set;}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the position of the upper-left corner of the client area of the window.
|
* Gets or Sets the position of the upper-left corner of the client area of the window.
|
||||||
*/
|
*/
|
||||||
public abstract Point Position {get; set;}
|
public extern Point Position {get; set;}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the x-coordinate of the upper-left corner of the client area of the window.
|
* Gets or Sets the x-coordinate of the upper-left corner of the client area of the window.
|
||||||
*/
|
*/
|
||||||
public abstract int32 PositionX {get; set;}
|
public extern int32 PositionX {get; set;}
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the y-coordinate of the upper-left corner of the client area of the window.
|
* Gets or Sets the y-coordinate of the upper-left corner of the client area of the window.
|
||||||
*/
|
*/
|
||||||
public abstract int32 PositionY {get; set;}
|
public extern int32 PositionY {get; set;}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or Sets the windows title.
|
* Gets or Sets the windows title.
|
||||||
*/
|
*/
|
||||||
public abstract StringView Title {get; set;}
|
public extern StringView Title {get; set;}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or Sets whether or not the application uses VSync
|
* Gets or Sets whether or not the application uses VSync
|
||||||
*/
|
*/
|
||||||
public abstract bool IsVSync {get; set;}
|
public extern bool IsVSync {get; set;}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a pointer to the platform specific window representation.
|
||||||
public abstract void* NativeWindow {get;}
|
*/
|
||||||
|
public extern void* NativeWindow {get;}
|
||||||
|
|
||||||
public EventCallback EventCallback
|
public EventCallback EventCallback
|
||||||
{
|
{
|
||||||
@@ -99,11 +102,6 @@ namespace GlitchyEngine
|
|||||||
set => _eventCallback = value;
|
set => _eventCallback = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void Update();
|
public extern void Update();
|
||||||
|
|
||||||
/**
|
|
||||||
* Function used to create a platform specific window.
|
|
||||||
*/
|
|
||||||
public static extern Window CreateWindow(WindowDescription description);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user