private void LstBackEndRenderer_SelectedIndexChanged(object sender, EventArgs e) { //show only example the available on the selected rendering backend RenderBackendChoice selItem = (RenderBackendChoice)lstBackEndRenderer.SelectedItem; lstExamples.Items.Clear(); List <ExampleAndDesc> selectedExampleList = null; switch (selItem) { default: return; case RenderBackendChoice.AggOnGLES: case RenderBackendChoice.PureAgg: selectedExampleList = _aggExamples; break; case RenderBackendChoice.GdiPlusOnGLES: case RenderBackendChoice.GdiPlus: selectedExampleList = _gdiExamples; break; case RenderBackendChoice.OpenGLES: selectedExampleList = _glesExamples; break; } int j = selectedExampleList.Count; for (int i = 0; i < j; ++i) { this.lstExamples.Items.Add(selectedExampleList[i]); } }
void lstExample_DoubleClick(object sender, EventArgs e) { //load sample form if (!(this.lstExamples.SelectedItem is ExampleAndDesc exAndDesc)) { return; //early exit } // DemoBase demo = InitDemo(exAndDesc); if (demo == null) { return; } FormTestBed formTestBed = new FormTestBed(); formTestBed.WindowState = FormWindowState.Maximized; RenderBackendChoice selItem = (RenderBackendChoice)lstBackEndRenderer.SelectedItem; CpuBlitAppModule cpuBlitContextWinForm = null; switch (selItem) { case RenderBackendChoice.PureAgg: { LayoutFarm.UI.FormCanvasHelper.CreateCanvasControlOnExistingControl( formTestBed.GetLandingControl(), 0, 0, 800, 600, LayoutFarm.UI.InnerViewportKind.PureAgg, out LayoutFarm.UI.GraphicsViewRoot surfaceViewport ); formTestBed.SetUISurfaceViewportControl(surfaceViewport); formTestBed.Show(); cpuBlitContextWinForm = new CpuBlitAppModule(); cpuBlitContextWinForm.BindSurface(surfaceViewport); cpuBlitContextWinForm.LoadExample(demo); demo.RequestGraphicRefresh += (s, e1) => cpuBlitContextWinForm.InvalidateUI(); formTestBed.FormClosed += (s1, e1) => cpuBlitContextWinForm.Close(); formTestBed.LoadExample(exAndDesc, demo); } break; case RenderBackendChoice.GdiPlus: { LayoutFarm.UI.FormCanvasHelper.CreateCanvasControlOnExistingControl( formTestBed.GetLandingControl(), 0, 0, 800, 600, LayoutFarm.UI.InnerViewportKind.GdiPlus, out LayoutFarm.UI.GraphicsViewRoot surfaceViewport ); formTestBed.SetUISurfaceViewportControl(surfaceViewport); cpuBlitContextWinForm = new CpuBlitAppModule(); cpuBlitContextWinForm.BindSurface(surfaceViewport); cpuBlitContextWinForm.LoadExample(demo); formTestBed.FormClosed += (s1, e1) => cpuBlitContextWinForm.Close(); formTestBed.LoadExample(exAndDesc, demo); formTestBed.Show(); } break; case RenderBackendChoice.OpenGLES: //gles 2 and 3 { //-------------------------------------------- LayoutFarm.UI.FormCanvasHelper.CreateCanvasControlOnExistingControl( formTestBed.GetLandingControl(), 0, 0, 800, 600, LayoutFarm.UI.InnerViewportKind.GLES, out LayoutFarm.UI.GraphicsViewRoot surfaceViewport ); formTestBed.SetUISurfaceViewportControl(surfaceViewport); GLESAppModule appModule = new GLESAppModule(); appModule.BindSurface(surfaceViewport); appModule.LoadExample(demo); formTestBed.FormClosing += (s2, e2) => appModule.Close(); formTestBed.LoadExample(exAndDesc, demo); formTestBed.Show(); } break; case RenderBackendChoice.AggOnGLES: case RenderBackendChoice.GdiPlusOnGLES: { LayoutFarm.UI.FormCanvasHelper.CreateCanvasControlOnExistingControl( formTestBed.GetLandingControl(), 0, 0, 800, 600, LayoutFarm.UI.InnerViewportKind.AggOnGLES, out LayoutFarm.UI.GraphicsViewRoot surfaceViewport ); formTestBed.SetUISurfaceViewportControl(surfaceViewport); // CpuBlitOnGLESAppModule appModule = new CpuBlitOnGLESAppModule(); appModule.WithGdiPlusDrawBoard = (selItem == RenderBackendChoice.GdiPlusOnGLES); //** appModule.BindSurface(surfaceViewport); appModule.LoadExample(demo); formTestBed.FormClosing += (s2, e2) => appModule.Close(); formTestBed.LoadExample(exAndDesc, demo); formTestBed.Show(); } break; #if SKIA_ENABLE case RenderBackendChoice.SkiaMemoryBackend: { TestSkia1.FormSkia1 formSkia = new TestSkia1.FormSkia1(); formSkia.SelectBackend(TestSkia1.FormSkia1.SkiaBackend.Memory); formSkia.Show(); formSkia.LoadExample(exAndDesc); } break; case RenderBackendChoice.SkiaGLBackend: { TestSkia1.FormSkia1 formSkia = new TestSkia1.FormSkia1(); formSkia.SelectBackend(TestSkia1.FormSkia1.SkiaBackend.GLES); formSkia.Show(); formSkia.LoadExample(exAndDesc); } break; #endif default: throw new NotSupportedException(); } }