Browse Source

pass session down TryCreateSurface.

pull/4346/head
Dan Walmsley 6 years ago
parent
commit
c7908d98c2
  1. 2
      src/Skia/Avalonia.Skia/DrawingContextImpl.cs
  2. 2
      src/Skia/Avalonia.Skia/Gpu/ISkiaGpu.cs
  3. 4
      src/Skia/Avalonia.Skia/Gpu/OpenGl/GlSkiaGpu.cs
  4. 4
      src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs

2
src/Skia/Avalonia.Skia/DrawingContextImpl.cs

@ -975,7 +975,7 @@ namespace Avalonia.Skia
DisableTextLcdRendering = !_canTextUseLcdRendering, DisableTextLcdRendering = !_canTextUseLcdRendering,
GrContext = _grContext, GrContext = _grContext,
Gpu = _gpu, Gpu = _gpu,
SurfaceOrigin = _session?.SurfaceOrigin ?? GRSurfaceOrigin.TopLeft Session = _session
}; };
return new SurfaceRenderTarget(createInfo); return new SurfaceRenderTarget(createInfo);

2
src/Skia/Avalonia.Skia/Gpu/ISkiaGpu.cs

@ -21,7 +21,7 @@ namespace Avalonia.Skia
/// Creates an offscreen render target surface /// Creates an offscreen render target surface
/// </summary> /// </summary>
/// <param name="size">size in pixels</param> /// <param name="size">size in pixels</param>
ISkiaSurface TryCreateSurface(PixelSize size, GRSurfaceOrigin surfaceOrigin); ISkiaSurface TryCreateSurface(PixelSize size, ISkiaGpuRenderSession session);
} }
public interface ISkiaSurface : IDisposable public interface ISkiaSurface : IDisposable

4
src/Skia/Avalonia.Skia/Gpu/OpenGl/GlSkiaGpu.cs

@ -47,7 +47,7 @@ namespace Avalonia.Skia
return null; return null;
} }
public ISkiaSurface TryCreateSurface(PixelSize size, GRSurfaceOrigin surfaceOrigin) public ISkiaSurface TryCreateSurface(PixelSize size, ISkiaGpuRenderSession session)
{ {
// Only windows platform needs our FBO trickery // Only windows platform needs our FBO trickery
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
@ -62,7 +62,7 @@ namespace Avalonia.Skia
return null; return null;
try try
{ {
var surface = new FboSkiaSurface(_grContext, _glContext, size, surfaceOrigin); var surface = new FboSkiaSurface(_grContext, _glContext, size, session?.SurfaceOrigin ?? GRSurfaceOrigin.TopLeft);
_canCreateSurfaces = true; _canCreateSurfaces = true;
return surface; return surface;
} }

4
src/Skia/Avalonia.Skia/SurfaceRenderTarget.cs

@ -51,7 +51,7 @@ namespace Avalonia.Skia
_grContext = createInfo.GrContext; _grContext = createInfo.GrContext;
_gpu = createInfo.Gpu; _gpu = createInfo.Gpu;
_surface = _gpu?.TryCreateSurface(PixelSize, createInfo.SurfaceOrigin); _surface = _gpu?.TryCreateSurface(PixelSize, createInfo.Session);
if (_surface == null) if (_surface == null)
_surface = new SkiaSurfaceWrapper(CreateSurface(createInfo.GrContext, PixelSize.Width, PixelSize.Height, _surface = new SkiaSurfaceWrapper(CreateSurface(createInfo.GrContext, PixelSize.Width, PixelSize.Height,
createInfo.Format)); createInfo.Format));
@ -219,7 +219,7 @@ namespace Avalonia.Skia
public ISkiaGpu Gpu; public ISkiaGpu Gpu;
public GRSurfaceOrigin SurfaceOrigin; public ISkiaGpuRenderSession Session;
} }
} }
} }

Loading…
Cancel
Save