我正在评估 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。
Ah, GPU.
您需要处于现有的 OpenGL/ANGLE 上下文中。
我正在这样做:https://github.com/mono/SkiaSharp/blob/master/source/SkiaSharp.Views/SkiaSharp.Views.UWP/SKSwapChainPanel.cs
但是,在实际初始化 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 上下文,就可以了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)