> glVertex3f(-0.5f, –0.5f, 0.0f);
> glEnd();
> glFinish();
> SwapBuffers(wglGetCurrentDC());
> angle += 0.5f;
>}
По моему проще уже некуда. Я надеюсь, что все ясно.
Ну вот казалось бы и все. Единственное, что остается сделать – убраться за собой. Т.е. надо при выходе удалить контекст рендеринга и убить таймер.
Эти вещи надо сделать в 2-х обработчиках OnClose и OnDestroy. Посмотрим на них:
>void CBitScrollDlg::OnClose() {
> // TODO: Add your message handler code here and/or call default
> HGLRC hrc;
> KillTimer(1);
> hrc = ::wglGetCurrentContext();
> ::wglMakeCurrent(NULL, NULL);
> if (hrc) ::wglDeleteContext(hrc);
> CDialog::OnClose();
>}
и
>void CBitScrollDlg::OnDestroy() {
> CDialog::OnDestroy();
> // TODO: Add your message handler code here
> HGLRC hrc;
> KillTimer(1);
> hrc = ::wglGetCurrentContext();
> ::wglMakeCurrent(NULL, NULL);
> if (hrc) ::wglDeleteContext(hrc);
>}
Она практически одинаковые. Работают так же как и case WM_CLOSE в Win32API. Т.е. убиваем таймер, получаем контекст рендеринга, если он есть – удаляем его.
Ну вот и все. Еще добавлю, что в проекте есть функция OnSize для обработки изменений размеров окна. В данном случае она не нужна, но если вставлять OpenGL в SDI или MDI, то она вам понадобится.