Browse Source

add WGL option.

pull/4619/head
Dan Walmsley 6 years ago
parent
commit
8614c06002
  1. 3
      src/Avalonia.OpenGL/AngleOptions.cs
  2. 9
      src/Avalonia.OpenGL/EglDisplay.cs

3
src/Avalonia.OpenGL/AngleOptions.cs

@ -7,7 +7,8 @@ namespace Avalonia.OpenGL
public enum PlatformApi public enum PlatformApi
{ {
DirectX9, DirectX9,
DirectX11 DirectX11,
WGL
} }
public IList<PlatformApi> AllowedPlatformApis { get; set; } = null; public IList<PlatformApi> AllowedPlatformApis { get; set; } = null;

9
src/Avalonia.OpenGL/EglDisplay.cs

@ -36,7 +36,12 @@ namespace Avalonia.OpenGL
throw new OpenGlException("eglGetPlatformDisplayEXT is not supported by libegl.dll"); throw new OpenGlException("eglGetPlatformDisplayEXT is not supported by libegl.dll");
var allowedApis = AvaloniaLocator.Current.GetService<AngleOptions>()?.AllowedPlatformApis var allowedApis = AvaloniaLocator.Current.GetService<AngleOptions>()?.AllowedPlatformApis
?? new [] {AngleOptions.PlatformApi.DirectX11, AngleOptions.PlatformApi.DirectX9}; ?? new []
{
AngleOptions.PlatformApi.WGL,
AngleOptions.PlatformApi.DirectX11,
AngleOptions.PlatformApi.DirectX9
};
foreach (var platformApi in allowedApis) foreach (var platformApi in allowedApis)
{ {
@ -45,6 +50,8 @@ namespace Avalonia.OpenGL
dapi = EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE; dapi = EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE;
else if (platformApi == AngleOptions.PlatformApi.DirectX11) else if (platformApi == AngleOptions.PlatformApi.DirectX11)
dapi = EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE; dapi = EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE;
else if (platformApi == AngleOptions.PlatformApi.WGL)
dapi = EGL_PLATFORM_ANGLE_TYPE_ANGLE;
else else
continue; continue;

Loading…
Cancel
Save