private PixelData RenderToTexture(int width, int height, Action<Canvas> renderMethod) { PixelData pixelData; using (Texture texture = new Texture(width, height, TextureSizeMode.NonPowerOfTwo)) using (RenderTarget renderTarget = new RenderTarget(AAQuality.Off, texture)) using (DrawDevice device = new DrawDevice()) { device.Perspective = PerspectiveMode.Flat; device.VisibilityMask = VisibilityFlag.AllGroups | VisibilityFlag.ScreenOverlay; device.RenderMode = RenderMatrix.OrthoScreen; device.Target = renderTarget; device.ViewportRect = new Rect(renderTarget.Width, renderTarget.Height); device.PrepareForDrawcalls(); { Canvas canvas = new Canvas(device); renderMethod(canvas); } device.Render(ClearFlag.All, ColorRgba.TransparentBlack, 1.0f); pixelData = texture.GetPixelData(); } return pixelData; }