gpt4 book ai didi

linux - 在 glBindFramebuffer 上签名

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:27 25 4
gpt4 key购买 nike

程序崩溃在 glBindFramebuffer(GL_FRAMEBUFFER, fb);在函数 gen_texture 中

gdb 告诉我“程序收到信号 SIGILL,非法指令。”

void gen_texture(GLuint &color, int width, int height)
{
GLuint fb;

glGenFramebuffers(1, &fb);
glGenTextures(1, &color);

glBindFramebuffer(GL_FRAMEBUFFER, fb);
...



int main(int argc, char **argv)
{
glutInit (&argc, argv);
glutInitContextVersion(4, 3);
glutInitContextProfile(GLUT_CORE_PROFILE);

std::cout << std::hex << glGetError() << "\n" << std::flush;

glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowSize (500, 500);
glutCreateWindow ("");
glutDisplayFunc (display);
glutIdleFunc (display);

std::cout << std::hex << glGetError() << "\n" << std::flush;


glewExperimental=GL_TRUE;
GLenum err=glewInit();
if(err!=GLEW_OK)
{
std::cerr << "glewInit fehlgeschlagen, aborting." << std::endl;
}

gen_texture(texture, 100, 60);
...

最佳答案

在这段代码中

GLenum err=glewInit();
if(err!=GLEW_OK)
{
std::cerr << "glewInit fehlgeschlagen, aborting." << std::endl;
}

仅仅因为 GLEW 为初始化返回 OK,这并不意味着所有扩展都已加载。同时检查 glGetError 不会向您报告 GLUT 错误(例如不支持您请求的上下文。在 glGetError 中仅报告 OpenGL 错误(GLUT 不是 OpenGL 的一部分)并且另外必须在循环中调用,直到它返回 GL_NO_ERROR

我建议您添加更详细的错误诊断并报告回来。

关于linux - 在 glBindFramebuffer 上签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com