Merge branch 'main' into dev/path-iterators

This commit is contained in:
Matthew Leibowitz 2021-03-30 17:37:18 +02:00 коммит произвёл GitHub
Родитель 6da8aa7e8a dabbd7089d
Коммит 735bebfaed
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 21 добавлений и 4 удалений

Просмотреть файл

@ -114,14 +114,16 @@ Task("ANGLE")
{ {
if (Skip(arch)) return; if (Skip(arch)) return;
var d = CONFIGURATION.ToLower() == "release" ? "" : "debug/";
RunProcess (vcpkg, $"install angle:{arch}-uwp"); RunProcess (vcpkg, $"install angle:{arch}-uwp");
var outDir = OUTPUT_PATH.Combine(arch); var outDir = OUTPUT_PATH.Combine(arch);
EnsureDirectoryExists(outDir); EnsureDirectoryExists(outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/bin/libEGL.dll"), outDir); CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/libEGL.dll"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/bin/libEGL.pdb"), outDir); CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/libEGL.pdb"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/bin/libGLESv2.dll"), outDir); CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/libGLESv2.dll"), outDir);
CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/bin/libGLESv2.pdb"), outDir); CopyFileToDirectory(VCPKG_PATH.CombineWithFilePath ($"installed/{arch}-uwp/{d}bin/libGLESv2.pdb"), outDir);
} }
}); });

Просмотреть файл

@ -33,6 +33,8 @@ namespace SkiaSharp.Views.UWP
private bool enableRenderLoop; private bool enableRenderLoop;
private bool pendingSizeChange = false;
public AngleSwapChainPanel() public AngleSwapChainPanel()
{ {
glesContext = null; glesContext = null;
@ -148,6 +150,8 @@ namespace SkiaSharp.Views.UWP
private void OnCompositionChanged(SwapChainPanel sender, object args) private void OnCompositionChanged(SwapChainPanel sender, object args)
{ {
pendingSizeChange = true;
ContentsScale = CompositionScaleX; ContentsScale = CompositionScaleX;
DestroyRenderSurface(); DestroyRenderSurface();
@ -157,6 +161,8 @@ namespace SkiaSharp.Views.UWP
private void OnSizeChanged(object sender, SizeChangedEventArgs e) private void OnSizeChanged(object sender, SizeChangedEventArgs e)
{ {
pendingSizeChange = true;
EnsureRenderSurface(); EnsureRenderSurface();
Invalidate(); Invalidate();
} }
@ -189,6 +195,15 @@ namespace SkiaSharp.Views.UWP
return; return;
glesContext.MakeCurrent(); glesContext.MakeCurrent();
if (pendingSizeChange)
{
pendingSizeChange = false;
if (!EnableRenderLoop)
glesContext.SwapBuffers();
}
glesContext.GetSurfaceDimensions(out var panelWidth, out var panelHeight); glesContext.GetSurfaceDimensions(out var panelWidth, out var panelHeight);
glesContext.SetViewportSize(panelWidth, panelHeight); glesContext.SetViewportSize(panelWidth, panelHeight);