Функция glReadPixel считывает разные значения на маке и на компьютере с убунту

Рейтинг: 0Ответов: 0Опубликовано: 07.08.2023

Ниже представленный код по разному работает на разных компах. На компе с убунту делает гифку начиная с нижней левой точки размером 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);
}

гифка на убунту

гифка на убунту

Ответы

Ответов пока нет.