OpenGL에서 렌더링 된 GLUT 창에서 이미지를 스크리닝하고 싶습니다. 디스플레이 콜백 측면에서 다음 코드를 삽입했습니다.GLUT_malloc 오류가있는 OpenGL
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 기가 바이트와 컴퓨터에 17K를 할당하려고 해요. Windows XP 및 Visual Studio C++ 2010 Express를 사용하고 있습니다. 어떤 도움이나 제안을 주시면 감사하겠습니다.
너비, 높이 및 바이트의 종류, 코드를 실행 한 횟수 및 메모리를 다른 곳에서 자유롭게하고 있습니까? – ergosys
좋은 분 .. 아무런 자유()가 보이지 않아요 :) – nielsj