Browse Source

implement GetScaleFactor for GLWindow.

repro-window-close
Dan Walmsley 8 years ago
parent
commit
42367440a5
  1. 8
      src/Avalonia.Windowing/Bindings/GlWindow.cs
  2. 1
      src/Avalonia.Windowing/Bindings/IWindowWrapper.cs
  3. 6
      src/Avalonia.Windowing/WIndowingPlatform.cs
  4. 2
      src/Avalonia.Windowing/WindowImpl.cs

8
src/Avalonia.Windowing/Bindings/GlWindow.cs

@ -25,6 +25,9 @@ namespace Avalonia.Windowing.Bindings
[DllImport("winit_wrapper")]
private static extern LogicalSize winit_gl_window_get_size(IntPtr handle);
[DllImport("winit_wrapper")]
private static extern double winit_gl_window_get_dpi_scale_factor(IntPtr handle);
[DllImport("winit_wrapper")]
private static extern LogicalPosition winit_gl_window_get_position(IntPtr handle);
@ -89,6 +92,11 @@ namespace Avalonia.Windowing.Bindings
return (size.Width, size.Height);
}
public double GetScaleFactor ()
{
return winit_gl_window_get_dpi_scale_factor(_handle);
}
public (double, double) GetFramebufferSize()
{
return GetSize();

1
src/Avalonia.Windowing/Bindings/IWindowWrapper.cs

@ -12,6 +12,7 @@ namespace Avalonia.Windowing.Bindings
void SetTitle(string title);
void SetSize(double width, double height);
double GetScaleFactor();
(double, double) GetSize();
(double, double) GetPosition();

6
src/Avalonia.Windowing/WIndowingPlatform.cs

@ -10,12 +10,6 @@ using Avalonia.Windowing.Bindings;
namespace Avalonia.Windowing
{
public class PlatformSettings : IPlatformSettings
{
public Size DoubleClickSize => new Size(4, 4);
public TimeSpan DoubleClickTime => TimeSpan.FromMilliseconds(200);
}
public class DummyPlatformHandle : IPlatformHandle
{
public IntPtr Handle => IntPtr.Zero;

2
src/Avalonia.Windowing/WindowImpl.cs

@ -55,7 +55,7 @@ namespace Avalonia.Windowing
}
}
public double Scaling => 192 / 96;
public double Scaling => _windowWrapper.GetScaleFactor();
public IEnumerable<object> Surfaces => new List<object>() { _windowWrapper };

Loading…
Cancel
Save