c++ - glGenFramebuffers 中的段错误

标签 c++ opengl ubuntu glew

我遇到了段错误,但无法弄清楚原因。与我一起工作的人在 OSX 机器上编译和运行正确。 gdb backtrace 告诉我它来自这部分代码,特别是来自 glGenFramebuffers:

    // Render the warped texture mapped triangles to framebuffer
GLuint myFBO;
GLuint myTexture;

glEnable(GL_TEXTURE_2D);
glGenTextures(1, &myTexture);
glBindTexture(GL_TEXTURE_2D, myTexture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, size.width, size.height, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

glGenFramebuffers(1, &myFBO);
glBindFramebuffer(GL_FRAMEBUFFER_EXT, myFBO);

我正在运行带有 Nvidia 卡的 12.04 Ubuntu,使用操作系统提供的来自 Nvidia 的最新专有驱动程序。我对 OpenGL 不是很熟悉,很多代码是我伙伴的,他似乎也被难住了。如果您需要任何进一步的信息,我很乐意提供。

最佳答案

答案其实很简单。 OSX 编码人员在开始使用 glew 调用之前不需要调用 glewInit() - Linux 和 Windows 用户需要调用。此外,我发现了另一点有趣的信息:检查您是否能够使用 glxinfo 执行直接渲染。它可以在运行 OpenGL 程序时发挥重要作用。

关于c++ - glGenFramebuffers 中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936338/

相关文章:

c++ - 在 Sublime Text 3 上构建 C++ 文件未结束

c++ - wind-chill 公式的程序表示是什么?

python - 安装 PyOpenGLContext 时遇到问题(语法错误)

java - 如何在JOGL中使用glDrawArrays显示立方体

php - 在 Ubuntu 上安装 php5-mcrypt

java - 如何在本地机器上为远程tomcat服务器制作一个网络应用程序

c++ - 在 Xcode 中显示多个目标输出

c++ - 获取链接器错误

c++ - 如何让纹理在 OpenGL 中工作?

r - python 2、julia 和 R 内核已死,但 jupyter (ubuntu) 中的 python 3。怎样才能回到正常的环境?