Сохранение вывода OpenGL в изображение с использованием кроссплатформенных библиотек

Я хочу взять скриншот из окна 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: какой из них лучший? Сравнение ценится, например, производительность \ совместимость.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector