|
|
|
@ -71,44 +71,56 @@ namespace Avalonia.Windowing.Bindings |
|
|
|
_handle = winit_gl_window_new(EventsLoop.Handle); |
|
|
|
} |
|
|
|
|
|
|
|
private bool disposed = false; |
|
|
|
public void Dispose() |
|
|
|
{ |
|
|
|
winit_gl_window_destroy(_handle); |
|
|
|
if (!disposed) |
|
|
|
{ |
|
|
|
winit_gl_window_destroy(_handle); |
|
|
|
disposed = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void SetTitle(string title) |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
winit_gl_window_set_title(_handle, title); |
|
|
|
} |
|
|
|
|
|
|
|
public void SetSize(double width, double height) |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
winit_gl_window_set_size(_handle, width, height); |
|
|
|
} |
|
|
|
|
|
|
|
public void SetPosition(double x, double y) |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
var position = new LogicalPosition { X = x, Y = y }; |
|
|
|
winit_gl_window_set_position(_handle, position); |
|
|
|
} |
|
|
|
|
|
|
|
public void Present() |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
winit_gl_window_present(_handle); |
|
|
|
} |
|
|
|
|
|
|
|
public IntPtr GetProcAddress(string symbol) |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
return winit_gl_window_get_proc_addr(_handle, symbol); |
|
|
|
} |
|
|
|
|
|
|
|
public (double, double) GetSize() { |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
var size = winit_gl_window_get_size(_handle); |
|
|
|
return (size.Width, size.Height); |
|
|
|
} |
|
|
|
|
|
|
|
public double GetScaleFactor () |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
return winit_gl_window_get_dpi_scale_factor(_handle); |
|
|
|
} |
|
|
|
|
|
|
|
@ -119,27 +131,32 @@ namespace Avalonia.Windowing.Bindings |
|
|
|
|
|
|
|
public (double, double) GetPosition() |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
var position = winit_gl_window_get_position(_handle); |
|
|
|
return (position.X, position.Y); |
|
|
|
} |
|
|
|
|
|
|
|
public void Show() |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
winit_gl_window_show(_handle); |
|
|
|
} |
|
|
|
|
|
|
|
public void ResizeContext(double width, double height) |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
winit_gl_window_resize_context(_handle, width, height); |
|
|
|
} |
|
|
|
|
|
|
|
public void ToggleDecorations(bool visible) |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
winit_gl_window_set_decorations(_handle, visible ? 1 : 0); |
|
|
|
} |
|
|
|
|
|
|
|
public void Hide() |
|
|
|
{ |
|
|
|
Contract.Requires<InvalidOperationException>(disposed != true); |
|
|
|
winit_gl_window_hide(_handle); |
|
|
|
} |
|
|
|
|
|
|
|
|