以下是运行时导致堆栈粉碎的代码:
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表面。
答案 0 :(得分:4)
可能的原因:
pixels
的大小超过了剩余的筹码量(只有有限数量的筹码可用),这就是粉碎你的筹码的原因。不要把堆栈用在大东西上。
另一个可能的原因是,应用所有打包参数(对齐,行间距)时,pixels
的大小对于纹理数据来说是小的。