public override void DrawRect(CoreGraphics.CGRect dirtyRect) { base.DrawRect(dirtyRect); if (grContext != null) { var sampleCount = grContext.GetRecommendedSampleCount(GRPixelConfig.Rgba8888, 96.0f); var desc = new GRBackendRenderTargetDesc { Width = (int)Bounds.Width, Height = (int)Bounds.Height, Config = GRPixelConfig.Rgba8888, Origin = GRSurfaceOrigin.TopLeft, SampleCount = sampleCount, StencilBits = 0, RenderTargetHandle = IntPtr.Zero, }; using (var surface = SKSurface.Create(grContext, desc)) { var skcanvas = surface.Canvas; sample.Method(skcanvas, (int)Bounds.Width, (int)Bounds.Height); skcanvas.Flush(); } GL.Flush(); } }