public void PlotGL() { try { lock (matrixLock) { ThisRot.get_Renamed(matrix); } ////m_Camera.setLook(); GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); // Clear screen and DepthBuffer GL.glPushMatrix(); // NEW: Prepare Dynamic Transform GL.glMultMatrixf(matrix); #region plot something this.display(); #endregion plot something GL.glPopMatrix(); // NEW: Unapply Dynamic Transform GL.glFlush(); // Flush the GL Rendering Pipeline this.Invalidate(); //m_Camera.setViewByMouse(); } catch { return; } }
protected override void InitGLContext() { GL.glShadeModel(GL.GL_SMOOTH); // enable smooth shading GL.glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // black background GL.glClearDepth(1.0f); // depth buffer setup GL.glEnable(GL.GL_DEPTH_TEST); // enables depth testing GL.glDepthFunc(GL.GL_LEQUAL); // type of depth testing // GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); // nice perspective calculations //GL.glPointSize(4.0f); GL.gluPerspective(25.0, (double)width / (double)height, 1.0, 15.0); //GL.glTranslatef(0.0f, 0.0f, -4.0f); //GL.gluLookAt(0.0,100.0,600.0,0.0,0.0,0.0,0.0,1.0,0.0); GL.glEnable(GL.GL_LIGHTING); // Enable Lighting GL.glEnable(GL.GL_LIGHT0); // Enable Default Light GL.glEnable(GL.GL_COLOR_MATERIAL); // Enable Color Material GL.glLoadIdentity(); LastRot.setIdentity(); // Reset Rotation ThisRot.setIdentity(); // Reset Rotation ThisRot.get_Renamed(matrix); LastScale = 1.0f; ThisScale = 1.0f; #region mouse handles MouseControl mouseControl = new MouseControl(this); mouseControl.AddControl(this); mouseControl.LeftMouseDown += new MouseEventHandler(glOnLeftMouseDown); mouseControl.LeftMouseUp += new MouseEventHandler(glOnLeftMouseUp); mouseControl.RightMouseDown += new MouseEventHandler(glOnRightMouseDown); mouseControl.RightMouseUp += new MouseEventHandler(glOnRightMouseUp); mouseControl.MiddleMouseDown += new MouseEventHandler(glOnMiddleMouseDown); mouseControl.MiddleMouseUp += new MouseEventHandler(glOnMiddleMouseUp); #endregion }