/* OpenGL animation code goes here */
glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glDisable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0f,512.0f,0.0f,512.0f,0.0f,1.0f);
glMatrixMode(GL_MODELVIEW_MATRIX);
glPushMatrix ();
glLoadIdentity();
glTranslatef(x,y,0.0f);
//glRotatef (theta, 0.0f, 0.0f, 1.0f);
glBegin (GL_TRIANGLES);
glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f);
glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.8f, -0.5f);
glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (-0.8f, -0.5f);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
//theta += 0.1f;
Sleep(1);
}
Это основной простой цикл opengl.
Недавно я вернулся к изучению Opengl (после того, как оставил его на 2 года).Проблема в том, что я пытался использовать glOrtho для создания 2D-среды, но она не работает.Я имею в виду, что программа, похоже, игнорирует вызов glOrtho (без ошибок, без предупреждений, без проекций, ничего).Это приводит к тому, что вершина (0,1) GL_TRIANGLE попадает в верхнюю часть окон, и все, что больше 1,0f, вылетит из области просмотра (я думаю, это все еще единичная матрица?).Я попытался изменить параметры, но никаких изменений в vieewport не произошло.Я не знаю, пропускаю ли я что-то (возможно, пропускает какой-то шаг инициализации или какой-то устаревший код, о котором я не знаю).