Quote (Тритон)
PFD_DOUBLEBUFFER; 
 Этот флаг включает режим двойной буферизации. То есть прорисовка идёт в "заднем" буфере, и чтобы показать картинку, нужно поменять местами передний и задний буферы (указатель на буфер, который нужно прорисовывать). 
 Quote (Тритон)
void OpenGLRender() 
 { 
 static double d=0.0; 
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
 glLoadIdentity(); 
 gluLookAt (0.0, 0.0, 1.8, 0.0, 1.0, 0.0 , 0.0, 0.0, 1.0); 
 glEnable(GL_DEPTH_TEST); 
 GL_TRIANGLES; 
 glColor3ub(255,255,0); 
 glVertex3d(0.0, 2.0, 0.0); 
 glVertex3d(1.0, 2.0, 0.0); 
 glVertex3d(0.0, 2.0, 1.0); 
 glDisable(GL_DEPTH_TEST); 
 } 
 У тебя в этой процедуре происходит прорисовка, но только в заднем буфере. Чтобы увидеть рисунок, нужно поменять буферы. Применяется WinAPI-функция SwapBuffers(контекст устройства воспроизведения), после завершения прорисовки в заднем буфере. 
 Quote (Apati)
device context в вин апи используется для работы с графикой через GDI (любая функция рисования там требует первым параметром контекст устройства). Т.е. это что-то вроде холста, на котором происходит рисование. Каждое окно может иметь свой контекст. Получить его можно в любой момент после создания и до удаления окна. 
 Контекст устройства - это указатель, а не сам холст. Контекст устройства имеют не только все окна, но и большинство компонентов окон, так что можно выводить картинку на, например, кнопку на окне. 
 Quote (Apati)
В данном случае контекст устройства используется для инициализации OpenGL. 
 Точнее, мы указываем OpenGL, куда нужно выводить изображение. 
 Quote (Xe|N|o)
А как подключить двойную буферизацию? 
 Режим двойной буферизации указывается при задании формата пикселя, это же в первом сообщении темы уже есть: 
 Quote (WXZRW)
desc.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; // Properties of pixel format