【发布时间】:2013-10-27 16:21:09
【问题描述】:
程序在 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);
...
【问题讨论】:
-
我在这里没有看到问题,只有几个陈述。你在问为什么你的程序崩溃了?如果是这样,
glGenFramebuffers()是否返回有效值?glGetError()是否在致电glBindFramebuffer()之前报告任何问题?