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); +}