/// <summary> /// /// </summary> /// <param name="e"></param> protected override void OnPaint(PaintEventArgs e) { RenderContext renderContext = this.renderContext; if (renderContext == null) { base.OnPaint(e); return; } stopWatch.Reset(); stopWatch.Start(); // Make sure it's our instance of openSharpGL that's active. renderContext.MakeCurrent(); if (this.designMode) { try { DesignModeRender(); } catch (Exception) { } } else { // If there is a draw handler, then call it. DoOpenGLDraw(e); } // Blit our offscreen bitmap. Graphics graphics = e.Graphics; IntPtr deviceContext = graphics.GetHdc(); renderContext.Blit(deviceContext); graphics.ReleaseHdc(deviceContext); stopWatch.Stop(); { ErrorCode error = (ErrorCode)OpenGL.GetError(); if (error != ErrorCode.NoError) { Debug.WriteLine(string.Format("{0}: OpenGL error: {1}", this.fullname, error)); } } this.FPS = 1000.0 / stopWatch.Elapsed.TotalMilliseconds; }
protected override void OnSizeChanged(EventArgs e) { base.OnSizeChanged(e); RenderContext renderContext = this.renderContext; if (renderContext != null) { renderContext.MakeCurrent(); renderContext.SetDimensions(this.Width, this.Height); OpenGL.Viewport(0, 0, this.Width, this.Height); this.Invalidate(); } }
protected override void OnPaint(PaintEventArgs e) { RenderContext renderContext = this.renderContext; if (renderContext == null) { base.OnPaint(e); return; } stopWatch.Restart(); // Make sure it's our instance of openSharpGL that's active. renderContext.MakeCurrent(); if (this.designMode) { // 天蓝色背景 OpenGL.ClearColor(0x87 / 255.0f, 0xce / 255.0f, 0xeb / 255.0f, 0xff / 255.0f); GLCanvasHelper.ResizeGL(this.Width, this.Height); GLCanvasHelper.DrawPyramid(); } else { // If there is a draw handler, then call it. DoOpenGLDraw(e); } // Blit our offscreen bitmap. Graphics graphics = e.Graphics; IntPtr deviceContext = graphics.GetHdc(); renderContext.Blit(deviceContext); graphics.ReleaseHdc(deviceContext); stopWatch.Stop(); this.FPS = 1000.0 / stopWatch.Elapsed.TotalMilliseconds; }
private void CreateRenderContext() { // Initialises OpenGL. var renderContext = new FBORenderContext(); // Create the render context. renderContext.Create(OpenGLVersion, Width, Height, 32, null); this.renderContext = renderContext; renderContext.MakeCurrent(); // Set the most basic OpenGL styles. OpenGL.ShadeModel(OpenGL.GL_SMOOTH); // 天蓝色背景 OpenGL.ClearColor(0x87 / 255.0f, 0xce / 255.0f, 0xeb / 255.0f, 0xff / 255.0f); OpenGL.ClearDepth(1.0f); OpenGL.Enable(OpenGL.GL_DEPTH_TEST); OpenGL.DepthFunc(OpenGL.GL_LEQUAL); OpenGL.Hint(OpenGL.GL_PERSPECTIVE_CORRECTION_HINT, OpenGL.GL_NICEST); }
/// <summary> /// /// </summary> protected virtual void CreateRenderContext() { // Initialises OpenGL. var renderContext = new FBORenderContext(); // Create the render context. renderContext.Create(Width, Height, 32, null); this.renderContext = renderContext; renderContext.MakeCurrent(); // Set the most basic OpenGL styles. OpenGL.ShadeModel(OpenGL.GL_SMOOTH); OpenGL.ClearDepth(1.0f); OpenGL.Enable(OpenGL.GL_DEPTH_TEST); OpenGL.DepthFunc(OpenGL.GL_LEQUAL); OpenGL.Hint(OpenGL.GL_PERSPECTIVE_CORRECTION_HINT, OpenGL.GL_NICEST); if (this.designMode) { GLCanvasHelper.ResizeGL(this.Width, this.Height); } }
/// <summary> /// /// </summary> protected virtual void CreateRenderContext() { // Initialises OpenGL. var renderContext = new FBORenderContext(); // Create the render context. renderContext.Create(Width, Height, 32, null); this.renderContext = renderContext; renderContext.MakeCurrent(); // Set the most basic OpenGL styles. OpenGL.ShadeModel(OpenGL.GL_SMOOTH); OpenGL.ClearDepth(1.0f); OpenGL.Enable(OpenGL.GL_DEPTH_TEST); OpenGL.DepthFunc(OpenGL.GL_LEQUAL); OpenGL.Hint(OpenGL.GL_PERSPECTIVE_CORRECTION_HINT, OpenGL.GL_NICEST); if (this.designMode) { GLCanvasHelper.ResizeGL(this.Width, this.Height); } }