glReadPixels:读取像素后,堆栈变量被破坏

时间:2014-10-28 15:25:56

标签: opengl stack glreadpixels

我正在尝试使用glReadPixels()来读取5 * 5像素的窗口。这是代码。

const unsigned int WINDOW_SIZE = 5;
const unsigned int NB_COMPONENTS = 3;
GLubyte array[NB_COMPONENTS * WINDOW_SIZE * WINDOW_SIZE];
glReadPixels( 0, 0, WINDOW_SIZE, WINDOW_SIZE, GL_RGB, GL_UNSIGNED_BYTE, array);

然而,此代码在visual studio中导致以下错误: "变量数组周围的堆栈已损坏"

如果我将+4添加到数组的大小,它可以正常工作。有人知道为什么吗?

1 个答案:

答案 0 :(得分:1)

由于您正在使用GL_RGB,请确保GL_PACK_ALIGNMENT is set to 1