SkiaSharp和GPU加速 [英] SkiaSharp and GPU acceleration
本文介绍了SkiaSharp和GPU加速的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在评估SkiaSharp库(来自Nuget,版本1.59.3)。一切都渲染得很好。但Skia似乎没有使用GPU来加速渲染。Windows 10任务管理器没有检测到我的测试应用程序使用了任何GPU。我正在使用Next命令创建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。
推荐答案
啊,图形处理器。
您需要处于现有的OpenGL/角度上下文中。
但是,在实际初始化SkiaSharp之前,我首先必须手动创建角度上下文: 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
如果您不是所有这些Setup-y代码的粉丝,那么这并不总是最好的代码,但是您可以使用其他库来完成所有的样板代码。只要存在有效的OpenGL/角度上下文,您就是好的。这篇关于SkiaSharp和GPU加速的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文