堆栈粉碎检测到glGetTexImage

时间:2016-08-21 03:51:55

标签: c++ opengl

以下是运行时导致堆栈粉碎的代码:

GLubyte pixels[SCREEN_WIDTH*SCREEN_HEIGHT*3];


glBindTexture(GL_TEXTURE_2D,fbo->renderedTexture);
glGetTexImage(GL_TEXTURE_2D,0,GL_RGB,GL_UNSIGNED_BYTE,pixels);

我确保函数本身不是问题,因为它适用于sdl表面。

1 个答案:

答案 0 :(得分:4)

可能的原因:

pixels的大小超过了剩余的筹码量(只有有限数量的筹码可用),这就是粉碎你的筹码的原因。不要把堆栈用在大东西上。

另一个可能的原因是,应用所有打包参数(对齐,行间距)时,pixels的大小对于纹理数据来说是小的。