C ++ OpenGl / Glut не удается нарисовать

Я пытаюсь просто нарисовать треугольник в окне. Я рисовал фигуры ранее в предыдущем коде и искал общие проблемы, такие как сбой в очистке или не очистка цветового буфера.

Несмотря на то, что я пытаюсь что-то сделать, я не могу нарисовать что-либо на экране, даже после того, как я упростил свой код, чтобы он в основном выглядел точно так же, как мой предыдущий (работающий!) Код. Все, что у меня есть, это основной и рендер:

// Declarations //
void Render(void); //Call the drawing functions

int main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(20,20);
glutCreateWindow("Triangle Test");

//prepare for drawing
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);

//now draw
glutDisplayFunc(Render);

glutMainLoop();
}// ---- Render Function ----
void Render(void)
{

// Draw a triangle
glColor3f(1.0f, 1.0f, 1.0f);

glBegin(GL_LINE_STRIP);

glVertex2f(100.0f, 20.0f);
glVertex2f(0.0f, 20.0f);
glVertex2f(20.0f, 50.0f);

glEnd();
glFlush();
}

При запуске он рисует окно с заданным мной цветом фона (в данном случае чёрным) и больше ничего. Я полностью в тупике. Все остальные вопросы по стеку, похоже, решаются с помощью тех вещей, которые у меня здесь есть (например, glFlush), и они практически идентичны моему старому коду, который хорошо рисует. Есть идеи?

1

Решение

Вы рисуете полосу, которая больше, чем ваше окно. Вам нужно либо установить свои матрицы так, чтобы вы видели большую область, нарисовать меньший многоугольник или нарисовать заполненный многоугольник, рисуя треугольник вместо линейной полосы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]