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; } }