Функция glReadPixel считывает разные значения на маке и на компьютере с убунту
Ниже представленный код по разному работает на разных компах. На компе с убунту делает гифку начиная с нижней левой точки размером 800x800, а на маке начальная точка отрисовки съезжает вниз влево. Почему так происходит?
class GLWidget {
int gifWidth = 800;
int gifHeight = 800;
uint8_t image[800 * 800 * 4];
}
void GLWidget::initializeGL() {
/*code*/
glReadPixels(0, 0, gifWidth, gifHeight, GL_RGBA, GL_UNSIGNED_BYTE, image);
}
void GLWidget::saveGif() {
QDateTime curTime = QDateTime::currentDateTime();
QString time = curTime.toString("yyyy-MM-dd-hh-mm-ss");
QString fileName = time + ".gif"; // Путь к файлу
int delay = 100;
GifWriter g;
GifBegin(&g, fileName.toStdString().c_str(), gifWidth, gifHeight, delay);
for (int timer = 0; timer <= 5000; timer += delay) {
GifWriteFrame(&g, image, gifWidth, gifHeight, 1);
std::this_thread::sleep_for(std::chrono::milliseconds(delay));
}
qDebug() << "Gif is ready";
GifEnd(&g);
}
Источник: Stack Overflow на русском