SkiaSharp 从控制台应用程序使用 OpenGL/Vulkan 后端进行绘图

问题描述 投票:0回答:2

我想使用 SkiaSharp 通过 GPU 加速(使用 OpenGL 或 Vulkan)绘制一些内容,并稍后保存图像。无需在应用程序中的任何位置显示图像,因为它是针对 Windows 和 Linux 的控制台应用程序。

我已经尝试了以下代码,有各种变化,但没有任何效果(在

var surface = SKSurface.Create(context, false, info);
处引发异常,因为
glInterface
context
null

有人可以给我提示吗?

var glInterface = GRGlInterface.Create();
var context = GRContext.CreateGl(glInterface);

var info = new SKImageInfo(256, 256);
var surface = SKSurface.Create(context, false, info);
var canvas = surface.Canvas;

最后,如果能够调用

SKBitmap.SetPixels(IntPrt)
或类似的方法将生成的位图缓冲区设置到特定位置,那就太好了。

c# opengl .net-core vulkan skiasharp
2个回答
2
投票

解决方案是您需要先手动创建OpenGL上下文。 请查看 https://github.com/mono/SkiaSharp/blob/master/tests/Tests/GRContextTest.cs 了解实现细节。

要复制渲染的像素缓冲区,您可以使用

SKSurface.ReadPixels


0
投票

这是什么 IDE?我想在没有 xorg 的原生 Linux 上制作游戏

© www.soinside.com 2019 - 2024. All rights reserved.