public void InitRootGraphics(
            RootGraphic rootgfx,
            ITopWindowEventRoot topWinEventRoot,
            InnerViewportKind innerViewportKind)
        {
            //1.
            this.rootgfx           = rootgfx;
            this.topWinEventRoot   = topWinEventRoot;
            this.innerViewportKind = innerViewportKind;
            switch (innerViewportKind)
            {
            case InnerViewportKind.GL:
            {
                ////temp not suppport
                //PixelFarm.Drawing.DrawingGL.CanvasGLPortal.Start();
                bridge = new OpenGL.MyTopWindowBridgeOpenGL(rootgfx, topWinEventRoot);
                bridge.BindWindowControl(this);
                //var view = new OpenGL.GpuOpenGLSurfaceView();
                //view.Width = 800;
                //view.Height = 600;
                ////view.Dock = DockStyle.Fill;
                //this.Controls.Add(view);
                ////---------------------------------------
                //view.Bind(bridge);
                this.winBridge = bridge;
            }
            break;

            case InnerViewportKind.Skia:
            {
                //skiasharp ***
                var bridge = new Skia.MyTopWindowBridgeSkia(rootgfx, topWinEventRoot);
                //var view = new CpuSurfaceView();
                //view.Dock = DockStyle.Fill;
                //this.Controls.Add(view);
                ////---------------------------------------
                //view.Bind(bridge);
                this.winBridge = bridge;
            }
            break;

            case InnerViewportKind.GdiPlus:
            default:
            {
                throw new NotSupportedException();
                //var bridge = new GdiPlus.MyTopWindowBridgeGdiPlus(rootgfx, topWinEventRoot);
                //var view = new CpuSurfaceView();
                //view.Dock = DockStyle.Fill;
                //this.Controls.Add(view);
                ////---------------------------------------
                //view.Bind(bridge);
                //this.winBridge = bridge;
            }
            break;
            }
        }
 public void Close()
 {
     if (_rootgfx != null)
     {
         _rootgfx.CloseWinRoot();
         _rootgfx = null;
     }
     if (_winBridge != null)
     {
         _winBridge.Close();
         _winBridge = null;
     }
 }