具有GPU加速功能的SkiaSharp绘图图像

时间:2018-11-18 12:25:52

标签: xamarin.forms gpu skiasharp

我想在xamarin.forms中用GPU加速来绘制一些东西。 (并稍后保存图像)。第一次调用以下方法时,我得到一个图像,并可以在SKGLView中显示它。但是当我再次调用该方法时,什么也没有(也没有错误)

有人可以给我一个提示吗?

private SKImage CreateSKImage()
{
    SKImage sKImage;

    var glInterface = GRGlInterface.CreateNativeAngleInterface();
    var grContext = GRContext.Create(GRBackend.OpenGL, glInterface);            
    var surface = SKSurface.Create(grContext, true, new SKImageInfo(500, 500));            
    var canvas = surface.Canvas;

    var paintStroke = new SKPaint
    {
        IsAntialias = true,
        Style = SKPaintStyle.Stroke,
        Color = SKColors.Purple,
        StrokeWidth = 1
    };

    canvas.DrawLine(new SKPoint(0, 0), new SKPoint(500, 500), paintStroke);

    surface.Canvas.Flush();

    sKImage = surface.Snapshot().ToRasterImage();          

    return sKImage;
}

编辑:当我从SKGLView onPaint调用方法时,我得到了一些东西。但是当我从其他任何地方调用该方法时, glInterface 为null ... hmmmm

如何以正确的方式创建OpenGL接口?

0 个答案:

没有答案