Opengl未定义行为
Opengl undefined behavior
我一直在使用Opengl遇到一些奇怪的行为。我做错了什么事,但我不知道是什么。
我有HD Graphics 3000加速器,我在Ubuntu 14.04上安装了Opengl 3.0。
问题是,有时什么也没画,特别是在做一个小的翻译,这应该导致它是可见的。当渲染纹理时,我得到分割错误。
下面是代码的重要部分:
启动SDL,创建opengl上下文等
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
exit(1);
}
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
mainwindow = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
512, 512, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
maincontext = SDL_GL_CreateContext(mainwindow);
glewInit();;
SDL_GL_SetSwapInterval(1);
启动opengl:
glClearColor(0.0,0.0,0.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45,(double)width/(double)height,1,100.0);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING); //we enable lighting, to make the 3D object to 3D
glEnable(GL_LIGHT0);
glEnable(GL_TEXTURE_2D);
float col[]= {1.0,1.0,1.0,1.0}; //light color is white
glLightfv(GL_LIGHT0,GL_DIFFUSE,col);
glEnable(GL_NORMALIZE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
呈现:
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glClearColor ( 0.0, 0.0, 0.0, 1.0 );
glLoadIdentity();
glTranslatef(0,0,-5);
glColor3f(1,0,0);
glBegin(GL_TRIANGLES);
glVertex3f(-1,-1,-5);
glVertex3f(1,-1,-5);
glVertex3f(0,1,-5);
glEnd();
我实际上渲染了一些加载的模型,但由于某种原因,甚至这个三角形也没有显示。如果我渲染模型,当加载纹理时,当使用SOIL提供的自动例程将图像加载到opengl时,会发生分割错误。
任何想法?我还检查了opengl中的错误以及初始化GLEW时的错误,但没有任何错误。
好吧,问题是我使用Opengl (call lightning, set view等)而没有启动SDL并创建上下文。奇怪的是,Opengl没有调用任何错误
相关文章:
- 编译C++时未定义的引用
- OpenGL GLFW:对'glfwInit'的未定义引用
- OpenGL / GLUT - 许多未定义的引用
- 无法将 Linux openGL 程序与 mingw32 交叉编译。配置.log错误:未定义对"_glEnable"的引用
- 架构x86_64的未定义符号 - OpenGL
- SDL2要么丢失OpenGL上下文或未定义的函数
- Ubuntu 13.10 C++ OpenGL GLUT - 链接问题 - 未定义对"glClearColor"的引用
- OpenGL 项目返回时带有未定义的引用
- 非官方OpenGL SDK链接问题-未定义引用
- OpenGl/Glew/GLSL 中的 Vec3 未定义
- Cygwin OpenGL 编译返回对imp_iob的未定义引用
- Opengl-linux对基本函数的未定义引用
- OpenGL SOIL对glBindTexture、glTexImage2d等的未定义引用
- OpenGL函数在VS2012 express中未定义
- Opengl未定义行为
- OpenGL函数未定义glow
- 在CLion中使用OpenGL时未定义的引用错误
- 编译opengl的未定义引用
- C++OpenGL:调用gluPerspective会引发未定义的引用错误
- 在Geany中使用OpenGL时获得未定义的引用