protected virtual void BeginOpenGL(object sender, EventArgs e) { SetStyle(ControlStyles.ResizeRedraw, true); hWnd = (uint)this.Handle.ToInt32(); DC = WGL.GetDC(this.hWnd); WGL.PIXELFORMATDESCRIPTOR pfd = new WGL.PIXELFORMATDESCRIPTOR(); WGL.ZeroPixelDescriptor(ref pfd); pfd.nVersion = 1; pfd.dwFlags = (WGL.PFD_DRAW_TO_WINDOW | WGL.PFD_SUPPORT_OPENGL | WGL.PFD_DOUBLEBUFFER); pfd.iPixelType = (byte)(WGL.PFD_TYPE_RGBA); pfd.cColorBits = 32; pfd.cDepthBits = 32; pfd.iLayerType = (byte)(WGL.PFD_MAIN_PLANE); int pixelFormat = 0; pixelFormat = WGL.ChoosePixelFormat(DC, ref pfd); WGL.SetPixelFormat(DC, pixelFormat, ref pfd); RC = WGL.wglCreateContext(DC); WGL.wglMakeCurrent(DC, RC); GL.glClearColor(0, 0, 0, 0); LoadFont(); }
protected virtual void InitializeGL() { m_uint_HWND = (uint)p.Handle.ToInt32(); m_uint_DC = WGL.GetDC(m_uint_HWND); // Not doing the following WGL.wglSwapBuffers() on the DC will // result in a failure to subsequently create the RC. WGL.wglSwapBuffers(m_uint_DC); WGL.PIXELFORMATDESCRIPTOR pfd = new WGL.PIXELFORMATDESCRIPTOR(); WGL.ZeroPixelDescriptor(ref pfd); pfd.nVersion = 1; pfd.dwFlags = (WGL.PFD_DRAW_TO_WINDOW | WGL.PFD_SUPPORT_OPENGL | WGL.PFD_DOUBLEBUFFER); pfd.iPixelType = (byte)(WGL.PFD_TYPE_RGBA); pfd.cColorBits = 32; pfd.cDepthBits = 32; pfd.iLayerType = (byte)(WGL.PFD_MAIN_PLANE); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //for Stencil support pfd.cStencilBits = 32; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! int pixelFormatIndex = 0; pixelFormatIndex = WGL.ChoosePixelFormat(m_uint_DC, ref pfd); if (pixelFormatIndex == 0) { MessageBox.Show("Unable to retrieve pixel format"); return; } if (WGL.SetPixelFormat(m_uint_DC, pixelFormatIndex, ref pfd) == 0) { MessageBox.Show("Unable to set pixel format"); return; } //Create rendering context m_uint_RC = WGL.wglCreateContext(m_uint_DC); if (m_uint_RC == 0) { MessageBox.Show("Unable to get rendering context"); return; } if (WGL.wglMakeCurrent(m_uint_DC, m_uint_RC) == 0) { MessageBox.Show("Unable to make rendering context current"); return; } initRenderingGL(); }
/// <summary> /// Event handler called when the form is loaded. It retrieves the controls /// window handle and device context and creates the rendering context. /// </summary> protected virtual void InitializeGL(object sender, EventArgs e) { m_uint_HWND = (uint)this.Handle.ToInt32(); m_uint_DC = WGL.GetDC(m_uint_HWND); // CAUTION: Not doing the following WGL.wglSwapBuffers() on the DC will // result in a failure to subsequently create the RC. WGL.wglSwapBuffers(m_uint_DC); //Get the pixel format WGL.PIXELFORMATDESCRIPTOR pfd = new WGL.PIXELFORMATDESCRIPTOR(); WGL.ZeroPixelDescriptor(ref pfd); pfd.nVersion = 1; pfd.dwFlags = (WGL.PFD_DRAW_TO_WINDOW | WGL.PFD_SUPPORT_OPENGL | WGL.PFD_DOUBLEBUFFER); pfd.iPixelType = (byte)(WGL.PFD_TYPE_RGBA); pfd.cColorBits = 32; pfd.cDepthBits = 32; pfd.iLayerType = (byte)(WGL.PFD_MAIN_PLANE); int pixelFormatIndex = 0; pixelFormatIndex = WGL.ChoosePixelFormat(m_uint_DC, ref pfd); if (pixelFormatIndex == 0) { MessageBox.Show("Unable to retrieve pixel format"); return; } if (WGL.SetPixelFormat(m_uint_DC, pixelFormatIndex, ref pfd) == 0) { MessageBox.Show("Unable to set pixel format"); return; } //Create rendering context m_uint_RC = WGL.wglCreateContext(m_uint_DC); if (m_uint_RC == 0) { MessageBox.Show("Unable to get rendering context"); return; } if (WGL.wglMakeCurrent(m_uint_DC, m_uint_RC) == 0) { MessageBox.Show("Unable to make rendering context current"); return; } //Set up OpenGL related characteristics ResizeGL(null, null); GL.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); GL.glEnable(GL.GL_DEPTH_TEST); GL.glDepthFunc(GL.GL_LEQUAL); //GL.glEnable(GL.GL_CULL_FACE); GL.glCullFace(GL.GL_BACK); }
/// <summary> /// Event handler called when the form is loaded. It retrieves the controls /// window handle and device context and creates the rendering context. /// </summary> protected virtual void InitializeGL(object sender, EventArgs e) { m_uint_HWND = (uint)this.Handle.ToInt32(); m_uint_DC = WGL.GetDC(m_uint_HWND); // CAUTION: Not doing the following WGL.wglSwapBuffers() on the DC will // result in a failure to subsequently create the RC. WGL.wglSwapBuffers(m_uint_DC); //Get the pixel format WGL.PIXELFORMATDESCRIPTOR pfd = new WGL.PIXELFORMATDESCRIPTOR(); WGL.ZeroPixelDescriptor(ref pfd); pfd.nVersion = 1; pfd.dwFlags = (WGL.PFD_DRAW_TO_WINDOW | WGL.PFD_SUPPORT_OPENGL | WGL.PFD_DOUBLEBUFFER); pfd.iPixelType = (byte)(WGL.PFD_TYPE_RGBA); pfd.cColorBits = 32; pfd.cDepthBits = 32; pfd.iLayerType = (byte)(WGL.PFD_MAIN_PLANE); int pixelFormatIndex = 0; pixelFormatIndex = WGL.ChoosePixelFormat(m_uint_DC, ref pfd); if(pixelFormatIndex == 0) { MessageBox.Show("Unable to retrieve pixel format"); return; } if(WGL.SetPixelFormat(m_uint_DC,pixelFormatIndex,ref pfd) == 0) { MessageBox.Show("Unable to set pixel format"); return; } //Create rendering context m_uint_RC = WGL.wglCreateContext(m_uint_DC); if(m_uint_RC == 0) { MessageBox.Show("Unable to get rendering context"); return; } if(WGL.wglMakeCurrent(m_uint_DC,m_uint_RC) == 0) { MessageBox.Show("Unable to make rendering context current"); return; } //Set up OpenGL related characteristics ResizeGL(null,null); LoadTextures1(); LoadTextures2(); GL.glClearColor(0.0f,0.0f,0.0f,0.0f); GL.glEnable(GL.GL_DEPTH_TEST); GL.glDepthFunc(GL.GL_LEQUAL); //GL.glEnable(GL.GL_CULL_FACE); GL.glCullFace(GL.GL_BACK); GL.glEnable(GL.GL_TEXTURE_2D); // Enable Texture Mapping 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); // The Type Of Depth Testing To Do GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_Hint, GL.GL_NICEST); // Really Nice Perspective Calculations //GL.glLightfv(GL.GL_LIGHT1, GL.GL_AMBIENT, this.LightAmbient); // Setup The Ambient Light //GL.glLightfv(GL.GL_LIGHT1, GL.GL_DIFFUSE, this.LightDiffuse); // Setup The Diffuse Light //GL.glLightfv(GL.GL_LIGHT1, GL.GL_POSITION, this.LightPosition); // Position The Light //GL.glEnable(GL.GL_LIGHT1); // Enable Light One //if (this.light) // If lighting, enable it to start // GL.glEnable(GL.GL_LIGHTING); }
/// <summary> /// Event handler called when the form is loaded. It retrieves the controls /// window handle and device context and creates the rendering context. /// </summary> protected virtual void InitializeGL(object sender, EventArgs e) { m_uint_HWND = (uint)this.Handle.ToInt32(); m_uint_DC = WGL.GetDC(m_uint_HWND); // CAUTION: Not doing the following WGL.wglSwapBuffers() on the DC will // result in a failure to subsequently create the RC. WGL.wglSwapBuffers(m_uint_DC); //Get the pixel format WGL.PIXELFORMATDESCRIPTOR pfd = new WGL.PIXELFORMATDESCRIPTOR(); WGL.ZeroPixelDescriptor(ref pfd); pfd.nVersion = 1; pfd.dwFlags = (WGL.PFD_DRAW_TO_WINDOW | WGL.PFD_SUPPORT_OPENGL | WGL.PFD_DOUBLEBUFFER); pfd.iPixelType = (byte)(WGL.PFD_TYPE_RGBA); pfd.cColorBits = 32; pfd.cDepthBits = 32; pfd.iLayerType = (byte)(WGL.PFD_MAIN_PLANE); int pixelFormatIndex = 0; pixelFormatIndex = WGL.ChoosePixelFormat(m_uint_DC, ref pfd); if(pixelFormatIndex == 0) { MessageBox.Show("Unable to retrieve pixel format"); return; } if(WGL.SetPixelFormat(m_uint_DC,pixelFormatIndex,ref pfd) == 0) { MessageBox.Show("Unable to set pixel format"); return; } //Create rendering context m_uint_RC = WGL.wglCreateContext(m_uint_DC); if(m_uint_RC == 0) { MessageBox.Show("Unable to get rendering context"); return; } if(WGL.wglMakeCurrent(m_uint_DC,m_uint_RC) == 0) { MessageBox.Show("Unable to make rendering context current"); return; } //Set up OpenGL related characteristics ResizeGL(null,null); GL.glClearColor(0.0f,0.0f,0.0f,0.0f); GL.glEnable(GL.GL_DEPTH_TEST); GL.glDepthFunc(GL.GL_LEQUAL); //GL.glEnable(GL.GL_CULL_FACE); GL.glCullFace(GL.GL_BACK); }
protected virtual void InitializeGL() { m_uint_HWND = (uint)panel.Handle.ToInt32(); m_uint_DC = WGL.GetDC(m_uint_HWND); // Not doing the following WGL.wglSwapBuffers() on the DC will // result in a failure to subsequently create the RC. WGL.wglSwapBuffers(m_uint_DC); WGL.PIXELFORMATDESCRIPTOR pfd = new WGL.PIXELFORMATDESCRIPTOR(); WGL.ZeroPixelDescriptor(ref pfd); pfd.nVersion = 1; pfd.dwFlags = (WGL.PFD_DRAW_TO_WINDOW | WGL.PFD_SUPPORT_OPENGL | WGL.PFD_DOUBLEBUFFER); pfd.iPixelType = (byte)(WGL.PFD_TYPE_RGBA); pfd.cColorBits = 32; pfd.cDepthBits = 32; pfd.iLayerType = (byte)(WGL.PFD_MAIN_PLANE); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //for Stencil support pfd.cStencilBits = 32; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! int pixelFormatIndex = 0; pixelFormatIndex = WGL.ChoosePixelFormat(m_uint_DC, ref pfd); if (pixelFormatIndex == 0) { MessageBox.Show("Unable to retrieve pixel format"); return; } if (WGL.SetPixelFormat(m_uint_DC, pixelFormatIndex, ref pfd) == 0) { MessageBox.Show("Unable to set pixel format"); return; } //Create rendering context m_uint_RC = WGL.wglCreateContext(m_uint_DC); if (m_uint_RC == 0) { MessageBox.Show("Unable to get rendering context"); return; } if (WGL.wglMakeCurrent(m_uint_DC, m_uint_RC) == 0) { MessageBox.Show("Unable to make rendering context current"); return; } initRenderingGL(); }