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 が失敗し始めます。エラー 12 の ENOMEM で失敗します。オペレーティング システムや GLUT について十分な知識がないため、これが発生する理由を理解できません。3 GB のマシンに 17K を割り当てようとしているだけです。Windows XP と Visual Studio C++ 2010 Express を使用しています。ヘルプや提案をいただければ幸いです。