コード例 #1
0
        private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            var surface = e.Surface;

            surface.Canvas.Clear(SKColor.Parse("#003366"));
            for (int i = 0; i < lineCount; i++)
            {
                var paint = new SKPaint
                {
                    Color = new SKColor(
                        red: (byte)rand.Next(255),
                        green: (byte)rand.Next(255),
                        blue: (byte)rand.Next(255),
                        alpha: (byte)rand.Next(255)),
                    StrokeWidth = rand.Next(1, 10),
                    IsAntialias = true
                };
                surface.Canvas.DrawLine(
                    x0: rand.Next(skglControl1.Width),
                    y0: rand.Next(skglControl1.Height),
                    x1: rand.Next(skglControl1.Width),
                    y1: rand.Next(skglControl1.Height),
                    paint: paint);
            }
        }
コード例 #2
0
        private void SkglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            var surface = e.Surface;

            surface.Canvas.Clear(SKColor.Parse("#003366"));

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

            for (int i = 0; i < testCorner.Points.Count; i++)
            {
                double fracToEnd = (double)i / (testCorner.Points.Count - 1);
                paint.Color = new SKColor(255, 255, 255, (byte)(255 * fracToEnd));
                if (fracToEnd == 1)
                {
                    paint.Style = SKPaintStyle.Fill;
                }

                var pt = new SKPoint(testCorner.Points[i].X, testCorner.Points[i].Y);
                surface.Canvas.DrawCircle(pt, 10f, paint);
            }

            renderCount += 1;
        }
コード例 #3
0
 private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
 {
     Renderer.Render(e.Surface.Canvas, field,
                     tails: TailsCheckbox.Checked,
                     ranges: RangeCheckbox.Checked,
                     direction: DirectionCheckbox.Checked);
 }
コード例 #4
0
        private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            var renderer = new SkiaRenderer(e.Surface.Canvas);

            Field.Render(renderer, polys, (float)nudWidth.Value, cbFade.Checked);
            renderCount += 1;
        }
コード例 #5
0
        private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            ICanvas canvas = new SkiaCanvas()
            {
                Canvas = e.Surface.Canvas
            };

            ActiveModel.Draw(canvas, skglControl1.Width, skglControl1.Height);
        }
コード例 #6
0
        private void GlControl_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            var skCanvas = e.Surface.Canvas;

            skCanvas.Clear(new SkiaSharp.SKColor(255, 255, 255));

            using (var paint = new SKPaint())
            {
                paint.TextSize    = 36.0f;
                paint.IsAntialias = true;
                paint.Color       = (SKColor)0xFF4281A4;
                paint.IsStroke    = false;
                skCanvas.DrawText("PixelFarm+SkiaSharp GLCanvas", 20, 64.0f, paint);
                paint.StrokeWidth = 3;
                skCanvas.DrawLine(0, 0, 100, 80, paint);
            }
        }
コード例 #7
0
        private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            // perform the drawing
            e.Surface.Canvas.Clear(SKColors.Black);
            var starColor = new SKColor(255, 255, 255, starAlpha);
            var starPaint = new SKPaint()
            {
                IsAntialias = true, Color = starColor
            };

            foreach (var star in field.GetStars())
            {
                float xPixel = (float)star.x * skglControl1.Width;
                float yPixel = (float)star.y * skglControl1.Height;
                float radius = (float)star.size - 1;
                var   point  = new SKPoint(xPixel, yPixel);
                e.Surface.Canvas.DrawCircle(point, radius, starPaint);
            }
        }
コード例 #8
0
        private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            if (field is null)
            {
                return;
            }

            stopwatch.Restart();

            using (var renderer = new SkiaSharpRenderer(e.Surface.Canvas))
            {
                field.Render(renderer);
            }

            stopwatch.Stop();
            double elapsedSec = (double)stopwatch.ElapsedTicks / Stopwatch.Frequency;

            Text = $"Constellation with SkiaSharp and OpenGL (Injected) {1 / elapsedSec:0.00} FPS";
        }
コード例 #9
0
ファイル: FormSkia1.cs プロジェクト: luislasonbra/PixelFarm
        private void GlControl_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            if (exampleBase != null)
            {
                painter.Canvas = e.Surface.Canvas;
                exampleBase.Draw(painter);
            }
            //var skCanvas = e.Surface.Canvas;
            //skCanvas.Clear(new SkiaSharp.SKColor(255, 255, 255));

            //using (var paint = new SKPaint())
            //{
            //    paint.TextSize = 36.0f;
            //    paint.IsAntialias = true;
            //    paint.Color = (SKColor)0xFF4281A4;
            //    paint.IsStroke = false;
            //    skCanvas.DrawText("PixelFarm+SkiaSharp", 20, 64.0f, paint);
            //    paint.StrokeWidth = 3;
            //    skCanvas.DrawLine(0, 0, 100, 80, paint);
            //}
        }
コード例 #10
0
 private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
 {
     using (var renderer = new SkiaSharpRenderer(e.Surface.Canvas, skglControl1.Width, skglControl1.Height))
         Plot.Render(renderer, true, false);
 }
コード例 #11
0
        private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
        {
            if (field is null)
            {
                return;
            }

            stopwatch.Restart();
            var canvas = e.Surface.Canvas;

            // clear background
            canvas.Clear(SKColor.Parse("#003366"));

            // draw stars
            float   starRadius = 3;
            SKPaint paint      = new SKPaint()
            {
                IsAntialias = true, Color = SKColors.White
            };

            foreach (var star in field.Stars)
            {
                var rect = new RectangleF(
                    x: star.X - starRadius,
                    y: star.Y - starRadius,
                    width: starRadius * 2,
                    height: starRadius * 2
                    );

                var pt = new SKPoint(star.X, star.Y);
                e.Surface.Canvas.DrawCircle(pt, starRadius, paint);
            }

            // draw lines connecting close stars
            double connectDistance = 100;

            foreach (var star1 in field.Stars)
            {
                foreach (var star2 in field.Stars)
                {
                    double dX = Math.Abs(star1.X - star2.X);
                    double dY = Math.Abs(star1.Y - star2.Y);
                    if (dX > connectDistance || dY > connectDistance)
                    {
                        continue;
                    }
                    double distance = Math.Sqrt(dX * dX + dY * dY);
                    int    alpha    = (int)(255 - distance / connectDistance * 255);
                    alpha       = Math.Min(alpha, 255);
                    alpha       = Math.Max(alpha, 0);
                    paint.Color = new SKColor(255, 255, 255, (byte)alpha);
                    if (distance < connectDistance)
                    {
                        canvas.DrawLine(star1.X, star1.Y, star2.X, star2.Y, paint);
                    }
                }
            }

            stopwatch.Stop();
            double elapsedSec = (double)stopwatch.ElapsedTicks / Stopwatch.Frequency;

            Text = $"Constellation with SkiaSharp and OpenGL (Simple) {1 / elapsedSec:0.00} FPS";
        }
コード例 #12
0
 private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e)
 {
     Field.Draw(e.Surface.Canvas);
 }