mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
120 lines
2.7 KiB
Beef
120 lines
2.7 KiB
Beef
using System;
|
|
using GlitchyEngine.Events;
|
|
using GlitchyEngine.Math;
|
|
using GlitchyEngine.Renderer;
|
|
|
|
namespace GlitchyEngine
|
|
{
|
|
public struct WindowDescription
|
|
{
|
|
public uint32 Width;
|
|
public uint32 Height;
|
|
public StringView Title;
|
|
public StringView Icon;
|
|
|
|
public this() => this = default;
|
|
|
|
public this(uint32 width, uint32 height, StringView title, StringView icon = default)
|
|
{
|
|
Width = width;
|
|
Height = height;
|
|
Title = title;
|
|
Icon = icon;
|
|
}
|
|
|
|
public static readonly WindowDescription Default => .(1280, 720, "Glitchy Engine")
|
|
}
|
|
|
|
public class Window
|
|
{
|
|
public delegate void EventCallback(Event e);
|
|
|
|
protected EventCallback _eventCallback ~ delete _;
|
|
|
|
public extern this(WindowDescription windowDescription);
|
|
|
|
/**
|
|
* Gets or Sets the minimum width of the window.
|
|
*/
|
|
public extern int32 MinWidth {get; set;}
|
|
/**
|
|
* Gets or Sets the minimum height of the window.
|
|
*/
|
|
public extern int32 MinHeight {get; set;}
|
|
|
|
/**
|
|
* Gets or Sets the maximum width of the window.
|
|
*/
|
|
public extern int32 MaxWidth {get; set;}
|
|
/**
|
|
* Gets or Sets the maximum height of the window.
|
|
*/
|
|
public extern int32 MaxHeight {get; set;}
|
|
|
|
/**
|
|
* Gets or Sets the width and height of the window.
|
|
*/
|
|
public extern int2 Size {get; set;}
|
|
/**
|
|
* Gets or Sets the width of the window.
|
|
*/
|
|
public extern int32 Width {get; set;}
|
|
/**
|
|
* Gets or Sets the height of the window.
|
|
*/
|
|
public extern int32 Height {get; set;}
|
|
|
|
/**
|
|
* Gets or Sets the position of the upper-left corner of the client area of the window.
|
|
*/
|
|
public extern int2 Position {get; set;}
|
|
|
|
/**
|
|
* Gets or Sets the x-coordinate of the upper-left corner of the client area of the window.
|
|
*/
|
|
public extern int32 PositionX {get; set;}
|
|
/**
|
|
* Gets or Sets the y-coordinate of the upper-left corner of the client area of the window.
|
|
*/
|
|
public extern int32 PositionY {get; set;}
|
|
|
|
/**
|
|
* Gets or Sets the windows title.
|
|
*/
|
|
public extern StringView Title {get; set;}
|
|
|
|
/**
|
|
* Gets or Sets whether or not the application uses VSync
|
|
*/
|
|
public extern bool IsVSync {get; set;}
|
|
|
|
/**
|
|
* Gets the windows graphics context.
|
|
*/
|
|
public extern GraphicsContext Context {get;}
|
|
|
|
/**
|
|
* Gets a pointer to the platform specific window representation.
|
|
*/
|
|
public extern void* NativeWindow {get;}
|
|
|
|
/**
|
|
* Gets whether or not the window is active.
|
|
*/
|
|
public extern bool IsActive {get;}
|
|
|
|
public EventCallback EventCallback
|
|
{
|
|
get => _eventCallback;
|
|
set => _eventCallback = value;
|
|
}
|
|
|
|
public extern void Update();
|
|
|
|
/**
|
|
* Sets the Icon of the window to the given file.
|
|
*/
|
|
public extern Result<void> SetIcon(StringView filePath);
|
|
}
|
|
}
|