- hdc = ::GetDC(m_hWnd);
- CPaintDC dc(this); // device context for painting
- HGLRC hglrc;
- glClearColor( 0.162f, 0.181f , 0.205f,0 );
- glColor3f(1, 1, 1);
- if (hglrc = wglCreateContext(hdc))
- {
- // try to make it the thread's current rendering context
- if(wglMakeCurrent(hdc, hglrc))
- {
- CRect rect=NULL;
- if((m_pParentWnd!=NULL)&&(m_pParentWnd->GetDlgItem(IDC_LENGTH_3D_ANSICHT))!=NULL)
- {
- m_pParentWnd->GetDlgItem(IDC_LENGTH_3D_ANSICHT)->GetWindowRect(rect);
- }
- if(rect!=NULL)
- {
- //render here
- glViewport(0, 0, rect.Width(),rect.Height());
- // Hier wird der Mittelpunkt auf den die Perspektive zuläuft
- // zurückgesetzt.
- glMatrixMode(GL_PROJECTION);
- // Hier wird die Projektionsmatrix festgelegt
- glLoadIdentity();
- // und angepasst
- gluPerspective(45.0f,(GLfloat)rect.Width()/(GLfloat)rect.Height(),0.1f,100.0f);
- // Hier wird die das Verhältnis der Höhe zur Breite übergeben
- // und der Verzerrungswinkel von 45 Grad übergeben
- glMatrixMode(GL_MODELVIEW);
- // Hier wird die sogenannte modelview-Matrix festgelegt
- glClearColor( 0.63529f, 0.7098f , 0.8039f,0 );
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- InitGL();
- if(m_LengthCalc !=NULL)
- {
- switch ( m_iOpenGl_Mode )
- {
- case 1 : //Vorlage 1
- {
- if(m_LengthCalc->DrawGLScene_1())
- {
- SwapBuffers(hdc);
- }
- break;
- }
- case 2 : //Vorlage 2
- {
- if(m_LengthCalc->DrawGLScene_2())
- {
- SwapBuffers(hdc);
- }
- break;
- }
- case 3 : //Vorlage 3
- {
- if(m_LengthCalc->DrawGLScene_3())
- {
- SwapBuffers(hdc);
- }
- break;
- }
- case 4 : //mit Werten
- {
- if(m_LengthCalc->DrawGLScene_Value())
- {
- SwapBuffers(hdc);
- }
- break;
- }
- }
- }
- // SwapBuffers(hdc);
- wglMakeCurrent(NULL, NULL) ;
- ::ReleaseDC (m_hWnd, hdc) ;
- wglDeleteContext(hglrc);
- }
- // Do not call CWnd::OnPaint() for painting messages
- }
- }