Я пытаюсь сделать снимок экрана в GLUT, и у меня возникла небольшая проблема.Кажется, что glReadPixels () приводит к сбою моей программы с
Access violoation writing location 0x00000000
. Странно то, что файл создан в корне проекта и, очевидно, пуст.Я быстро настроил некоторые команды printf, и кажется, что код происходит каждый раз во время метода glReadPixels ().
Я чувствую, что проблема, возможно, связана с переменной 'пиксели'.У меня проблемы с поиском правильного способа определить это так, чтобы значения RGB были записаны в него.
Любые советы будут оценены.
void savePPM(char ppmFileName[]){
int width = glutGet(GLUT_WINDOW_WIDTH);
int height = glutGet(GLUT_WINDOW_HEIGHT);
char *pixels = NULL;
glReadPixels(0,0, width, height, GL_RGB, GL_UNSIGNED_BYTE ,pixels);
ppmFile = fopen(ppmFileName, "wb");
fprintf(ppmFile, "P6\n");
fprintf(ppmFile, "%d %d\n", width, height);
fprintf(ppmFile, "255\n");
fwrite(pixels, 1, width*height*3, ppmFile);
fclose(ppmFile);
free(pixels);
}