Browse Source

Fixes

pull/5012/head
Nikita Tsukanov 6 years ago
parent
commit
41e5133624
  1. 8
      src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs
  2. 4
      src/Windows/Avalonia.Win32/WinRT/Composition/WinUiCompositedWindowSurface.cs

8
src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs

@ -6,6 +6,7 @@ using Avalonia.MicroCom;
using Avalonia.OpenGL; using Avalonia.OpenGL;
using Avalonia.OpenGL.Angle; using Avalonia.OpenGL.Angle;
using Avalonia.OpenGL.Egl; using Avalonia.OpenGL.Egl;
using Avalonia.Rendering;
using Avalonia.Win32.Interop; using Avalonia.Win32.Interop;
namespace Avalonia.Win32.WinRT.Composition namespace Avalonia.Win32.WinRT.Composition
@ -29,9 +30,9 @@ namespace Avalonia.Win32.WinRT.Composition
_angle = (AngleWin32EglDisplay)_gl.Display; _angle = (AngleWin32EglDisplay)_gl.Display;
_queue = NativeWinRTMethods.CreateDispatcherQueueController(new NativeWinRTMethods.DispatcherQueueOptions _queue = NativeWinRTMethods.CreateDispatcherQueueController(new NativeWinRTMethods.DispatcherQueueOptions
{ {
apartmentType = NativeWinRTMethods.DISPATCHERQUEUE_THREAD_APARTMENTTYPE.DQTAT_COM_NONE, apartmentType = NativeWinRTMethods.DISPATCHERQUEUE_THREAD_APARTMENTTYPE.DQTAT_COM_STA,
dwSize = Marshal.SizeOf<NativeWinRTMethods.DispatcherQueueOptions>(), dwSize = Marshal.SizeOf<NativeWinRTMethods.DispatcherQueueOptions>(),
threadType = NativeWinRTMethods.DISPATCHERQUEUE_THREAD_TYPE.DQTYPE_THREAD_CURRENT threadType = NativeWinRTMethods.DISPATCHERQUEUE_THREAD_TYPE.DQTYPE_THREAD_DEDICATED
}); });
_compositor = NativeWinRTMethods.CreateInstance<ICompositor>("Windows.UI.Composition.Compositor"); _compositor = NativeWinRTMethods.CreateInstance<ICompositor>("Windows.UI.Composition.Compositor");
_compositor2 = _compositor.QueryInterface<ICompositor2>(); _compositor2 = _compositor.QueryInterface<ICompositor2>();
@ -96,7 +97,6 @@ namespace Avalonia.Win32.WinRT.Composition
spriteVisual.SetBrush(brush); spriteVisual.SetBrush(brush);
using var visual = spriteVisual.QueryInterface<IVisual>(); using var visual = spriteVisual.QueryInterface<IVisual>();
using var visual2 = spriteVisual.QueryInterface<IVisual2>(); using var visual2 = spriteVisual.QueryInterface<IVisual2>();
//visual2.SetRelativeSizeAdjustment(new Vector2(1, 1));
using var container = _compositor.CreateContainerVisual(); using var container = _compositor.CreateContainerVisual();
using var containerVisual = container.QueryInterface<IVisual>(); using var containerVisual = container.QueryInterface<IVisual>();
using var containerVisual2 = container.QueryInterface<IVisual2>(); using var containerVisual2 = container.QueryInterface<IVisual2>();
@ -141,7 +141,7 @@ namespace Avalonia.Win32.WinRT.Composition
spriteVisual.SetBrush(satBrush); spriteVisual.SetBrush(satBrush);
//visual.SetIsVisible(0); visual.SetIsVisible(0);
visual2.SetRelativeSizeAdjustment(new Vector2(1.0f, 1.0f)); visual2.SetRelativeSizeAdjustment(new Vector2(1.0f, 1.0f));
return visual.CloneReference(); return visual.CloneReference();

4
src/Windows/Avalonia.Win32/WinRT/Composition/WinUiCompositedWindowSurface.cs

@ -76,9 +76,9 @@ namespace Avalonia.Win32.WinRT.Composition
var res = base.BeginDraw(surface, _info, () => var res = base.BeginDraw(surface, _info, () =>
{ {
_window.Item.EndDraw();
texture?.Dispose();
surface?.Dispose(); surface?.Dispose();
texture?.Dispose();
_window.Item.EndDraw();
contextLock?.Dispose(); contextLock?.Dispose();
}, true); }, true);
success = true; success = true;

Loading…
Cancel
Save