[英]C++ OpenGl/Glut failing to draw
我试图在窗口中简单地绘制一个三角形。 在之前的代码中,我已经绘制了形状,并且查找了一些常见问题,例如无法刷新或不清除颜色缓冲区。
尽管我似乎尝试了什么,但即使我将代码简化为基本上与之前的代码(工作中的代码)完全一样,也无法在屏幕上绘制任何内容。 我所拥有的只是一个主渲染器:
// 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)解决了,它实际上与我的旧代码完全相同,可以很好地绘制代码。 有任何想法吗?
您正在绘制的线条大于窗口。 您需要设置矩阵,以便看到更大的区域,绘制更小的多边形或通过绘制三角形而不是线条来绘制填充的多边形。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.