我想从 OpenGL 中渲染的 GLUT 窗口中截取图像。在显示回调的一侧,我插入了以下代码:
display() {
drawTriangle(); //Renders the image
if(shouldDisplay) {
shouldDisplay=0;
bytes = width*height*3; //Color space is RGB
buffer = (GLubyte *)malloc(bytes); //buffer is global var for now
glFinish();
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, buffer);
}
glutSwapBuffers();
}
此代码运行后,malloc 开始失败。它因 ENOMEM 失败,错误 12。我对操作系统或 GLUT 了解不足,无法理解为什么会发生这种情况。我只是想在一台 3 GB 的机器上分配 17K。我正在使用 Windows XP 和 Visual Studio C++ 2010 Express。任何帮助或建议表示赞赏。