我正在评估SkiaSharp库(来自nuget,版本1.59.3)。一切都很好。但似乎Skia没有使用GPU来加速渲染。 Windows 10任务管理器未检测到我的测试应用程序使用GPU。我正在使用下一个命令来创建SKCanvas:
using (SKBitmap bitmap = new SKBitmap(gWidth, gHeight, SKColorType.Bgra8888, alphaType))
using (SKCanvas canvas = new SKCanvas(bitmap))
{ ... }
GPU加速需要一些特殊的方法来初始化SkiaSharp吗?
我尝试过下一个命令:
GRContext context = GRContext.Create(GRBackend.OpenGL);
但它返回null。
答案 0 :(得分:1)
啊,GPU。
您需要处于现有的OpenGL / ANGLE环境中。
但是,在我实际初始化SkiaSharp之前,我首先必须手动创建ANGLE上下文: https://github.com/mono/SkiaSharp/blob/master/source/SkiaSharp.Views/SkiaSharp.Views.UWP/AngleSwapChainPanel.cs
对于所有平台都是一样的,首先设置OpenGL / ANGLE上下文,然后当它是当前上下文时,启动SkiaSharp GRContext。
这也是我为单元测试所做的事情: https://github.com/mono/SkiaSharp/blob/master/tests/Tests/GlContexts/Wgl/WglContext.cs
如果您不是所有这些设置代码的粉丝,那么这并不总是最好的代码,但您可以使用其他库来执行所有样板代码。只要有一个有效的OpenGL / ANGLE上下文,你就是好的。