Я хочу взять скриншот из окна OpenGL и сохранить его в файл изображения любого типа. Описан метод DevIL Вот дает правильный PNG. Замените ilSaveImage на ilSave, и вы сможете сохранять изображения в разных форматах. Метод ПОЧВЫ Вот дает перевернутое вертикально изображение. Замена кода ниже
vector< unsigned char > buf( w * h * 3 );
glPixelStorei( GL_PACK_ALIGNMENT, 1 );
glReadPixels( 0, 0, w, h, GL_RGB, GL_UNSIGNED_BYTE, &buf[0] );
int err = SOIL_save_image ("img.bmp", SOIL_SAVE_TYPE_BMP, w, h, 3, &buf[0]);
только одна строка создает правильное изображение.
int err = SOIL_save_screenshot("img.bmp",SOIL_SAVE_TYPE_BMP, 0, 0, w, h);
Q1: Есть ли более удобные альтернативы, использующие другие библиотеки?
Q2: какой из них лучший? Сравнение ценится, например, производительность \ совместимость.
Задача ещё не решена.