From e8d3544c9ec9a25e7bb529c0d3f9503a16152f29 Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Wed, 8 Jan 2025 23:42:25 +0000 Subject: [PATCH] add ISkiaGpuWithPlatformGraphicsContext interface to vulkan skia gpu (#17895) --- src/Skia/Avalonia.Skia/Gpu/Vulkan/VulkanSkiaGpu.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Skia/Avalonia.Skia/Gpu/Vulkan/VulkanSkiaGpu.cs b/src/Skia/Avalonia.Skia/Gpu/Vulkan/VulkanSkiaGpu.cs index 34670a5ca7..a862424e51 100644 --- a/src/Skia/Avalonia.Skia/Gpu/Vulkan/VulkanSkiaGpu.cs +++ b/src/Skia/Avalonia.Skia/Gpu/Vulkan/VulkanSkiaGpu.cs @@ -7,7 +7,7 @@ using SkiaSharp; namespace Avalonia.Skia.Vulkan; -internal class VulkanSkiaGpu : ISkiaGpu +internal class VulkanSkiaGpu : ISkiaGpuWithPlatformGraphicsContext { private readonly VulkanSkiaExternalObjectsFeature? _externalObjects; public IVulkanPlatformGraphicsContext Vulkan { get; private set; } @@ -72,6 +72,9 @@ internal class VulkanSkiaGpu : ISkiaGpu } public bool IsLost => Vulkan.IsLost; + + public IPlatformGraphicsContext? PlatformGraphicsContext => Vulkan; + public IDisposable EnsureCurrent() => Vulkan.EnsureCurrent(); @@ -83,4 +86,7 @@ internal class VulkanSkiaGpu : ISkiaGpu public ISkiaSurface? TryCreateSurface(PixelSize size, ISkiaGpuRenderSession? session) => null; -} \ No newline at end of file + + public IScopedResource TryGetGrContext() => + ScopedResource.Create(GrContext, EnsureCurrent().Dispose); +}