예제 #1
0
        MainForm(Bitmap screenshot, Ball ball, int framesPerSecond)
        {
            _screenshot = screenshot;
            _ball       = ball;

            Bounds          = Screen.PrimaryScreen.Bounds;
            FormBorderStyle = FormBorderStyle.None;
            DoubleBuffered  = true;

            var skcontrol = new SKGLControl()
            {
                Dock = DockStyle.Fill
            };

            skcontrol.PaintSurface += Skcontrol_PaintSurface;
            skcontrol.Click        += (o, e) => Close();
            skcontrol.KeyPress     += (o, e) => Close();

            var timer = new Timer()
            {
                Interval = (int)Math.Round(1000.0 / framesPerSecond)
            };

            timer.Tick += (o, e) => { _ball.Update(); skcontrol.Invalidate(); };
            timer.Start();

            Controls.Add(skcontrol);
        }
예제 #2
0
        public void Initialize(SKGLControl control)
        {
            GLControl = control;
            GLControl.MakeCurrent();
            GLControl.Dock = DockStyle.Fill;

            Child = GLControl;
        }
예제 #3
0
 public FrmSkGl()
 {
     InitializeComponent();
     glCtrl               = new SKGLControl();
     glCtrl.Dock          = DockStyle.Fill;
     glCtrl.BackColor     = Color.Black;
     glCtrl.PaintSurface += GlCtrl_PaintSurface;
     Controls.Add(glCtrl);
 }
예제 #4
0
        private void OnGLControlHost(object sender, EventArgs e)
        {
            var glControl = new SKGLControl();

            glControl.PaintSurface += OnPaintGL;
            glControl.Dock          = System.Windows.Forms.DockStyle.Fill;

            var host = (WindowsFormsHost)sender;

            host.Child = glControl;
        }
예제 #5
0
        void Init()
        {
            var skcontrol = new SKGLControl();

            skcontrol.PaintSurfaceAction = ((surface) => Tests.PaintStuff(surface));

            Title = "SKControl Demo (OpenGL Renderer)";

            ClientSize = new Drawing.Size(500, 500);

            Content = skcontrol;
        }
예제 #6
0
        private void InitializeSkiaControls()
        {
            controlTool = new SKGLControl
            {
                Name   = "PhiddleTool",
                Bounds = this.Bounds,
                Dock   = DockStyle.Fill,
            };

            controlTool.PaintSurface += new EventHandler <SKPaintGLSurfaceEventArgs>(HandlePaintGLSurfaceTool);
            controlTool.MouseMove    += new MouseEventHandler(HandleMouseMove);
            controlTool.MouseClick   += new MouseEventHandler(HandleMouseClick);
            Controls.Add(controlTool);

            var il = phiddle.InfoWindowLocation;
            var ib = phiddle.InfoWindowSize;

            controlInfo = new SKGLControl
            {
                Name     = "PhiddleInfo",
                Location = new Point((int)il.X, (int)il.Y),
                Size     = new Size((int)ib.Width, (int)ib.Height),
            };
            controlInfo.PaintSurface += new EventHandler <SKPaintGLSurfaceEventArgs>(HandlePaintGLSurfaceInfo);
            Controls.Add(controlInfo);

            var zl = phiddle.ZoomWindowLocation;
            var zb = phiddle.ZoomWindowSize;

            controlZoom = new SKGLControl
            {
                Name     = "PhiddleZoom",
                Location = new Point((int)zl.X, (int)zl.Y),
                Size     = new Size((int)zb.Width, (int)zb.Height)
            };
            controlZoom.PaintSurface += new EventHandler <SKPaintGLSurfaceEventArgs>(HandlePaintGLSurfaceZoom);
            Controls.Add(controlZoom);
        }