【发布时间】:2019-02-17 06:57:00
【问题描述】:
我正在使用 Ubuntu 18.04 LTS 并尝试使用 OpenGL 实现 2d 行,但它没有显示任何内容。我正在使用 ubuntu 编译器。我已经使用 终端 安装了库。
这是我的代码
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
glVertex2i(10,10);
glVertex2i(100,100);
glEnd();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow ("points and lines");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
这就是我编译和运行程序的方式
g++ jamshaid.cpp -o jamoo -lglut -lGLU -lGL
./jamoo
更新 1
添加了 init2D 并尝试了其他答案,但没有奏效。它甚至不会改变窗口的标题。
更新 2
从this 站点更新代码后。我现在有这个代码并且它正在工作。你能解释一下为什么会这样吗?谢谢
#include <GL/glut.h>
void init2D(float r, float g, float b)
{
glClearColor(r,g,b,0.0);
glMatrixMode (GL_PROJECTION);
gluOrtho2D (0.0, 200.0, 0.0, 150.0);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex2i(10,10);
glVertex2i(100,100);
glEnd();
glFlush();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow ("points and lines");
init2D(0.0,0.0,0.0);
glutDisplayFunc(display);
glutMainLoop();
return 0;}
【问题讨论】:
-
你为什么以 root 运行 GCC?
init2D()的代码在哪里? -
@genpfault 它在显示功能中。不是吗?事实上我是opengl的初学者
-
如果我不root它。结果是一样的
-
我在任何地方都没有看到
init2D()的定义,只是在main()中调用。 -
即使没有它也可以工作。