C++ GLGetProgramResourceIndex异常错误
我有一个简单但复杂的问题。我正在运行以下代码:C++ GLGetProgramResourceIndex异常错误,c++,opengl,glew,C++,Opengl,Glew,我有一个简单但复杂的问题。我正在运行以下代码: OpenGL::PrintError(__FILE__, __LINE__); GLuint raytracer = CompileRayTracer(); OpenGL::SetProgram(raytracer); OpenGL::PrintError(__FILE__, __LINE__); // Generate the buffer. OpenGL::PrintError(__FILE__, __LINE__); GLuint
OpenGL::PrintError(__FILE__, __LINE__);
GLuint raytracer = CompileRayTracer();
OpenGL::SetProgram(raytracer);
OpenGL::PrintError(__FILE__, __LINE__);
// Generate the buffer.
OpenGL::PrintError(__FILE__, __LINE__);
GLuint pixelbuffer;
glGenBuffers(1, &pixelbuffer);
OpenGL::PrintError(__FILE__, __LINE__);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, pixelbuffer);
OpenGL::PrintError(__FILE__, __LINE__);
glBufferData(GL_SHADER_STORAGE_BUFFER, window.GetWidth() * window.GetHeight() * 4 * 3, NULL, GL_DYNAMIC_COPY);
OpenGL::PrintError(__FILE__, __LINE__);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, NULL);
OpenGL::PrintError(__FILE__, __LINE__);
GLuint index = glGetProgramResourceIndex(raytracer, GL_SHADER_STORAGE_BLOCK, "PixelBuffer");
OpenGL::PrintError(__FILE__, __LINE__);
glShaderStorageBlockBinding(raytracer, index, 1);
OpenGL::PrintError(__FILE__, __LINE__);
以下变量的内容为:
光线跟踪器:2
window.GetWidth()*window.GetHeight()*4*3:1228800
像素缓冲区:1
我得到的不是某种OpenGL错误显示,而是一个异常错误,我的程序正好在这一行中断/chrash
有人知道问题出在哪里吗
编辑:
我发现glGetProgramResourceIndex为null(我猜是函数指针),所以我猜这与GLEW有关?答案如下: glewExperimental=GL_TRUE 显然,没有设置此标志,某些函数无法加载