Qt QApplication падение частоты кадров при максимизации окна

Мы используем Qt для просмотра движка визуализации, и у нас возникают проблемы с QApplication::processEvents() метод.
Так как нам нужно было контролировать частоту кадров (в игровом цикле), мы переопределили QApplication, чтобы определить наш собственный и наш игровой цикл, который выглядит как

MainApplication app;
// Some code here
while (true) {
app.processEvents();
app.doFrame();
// sync code, nothing for now
}

Это прекрасно работает, время составляет около 0,001 с для processEvents() в то время как для пустой сцены, doFrame() занимает около 0,0001 с.
Теперь у нас есть проблема, когда мы дважды щелкаем по строке заголовка (чтобы развернуть окно). Действительно, после этого processEvents() вызов, идет от около 0,001 с до около 0,01 с (* 10). Большую часть времени, кажется, берется в QPlatformBackingStore::composeAndFlush()

Используемая программа просмотра основана на QOpenGLWidget, и весь рендеринг выполняется вне Qt (мы пишем в Qt FBO).

Обратите внимание, что мы не переопределяем QApplication::processEvents(),

Спасибо

2

Решение

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

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

Других решений пока нет …

По вопросам рекламы [email protected]