我想在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接口?