SFML Рисование OpenGL для нескольких окон очень медленно

Вот ситуация:

У меня есть 4 окна SFML, которые находятся внутри контейнера, который я построил. Контейнер вызывает независимые методы перерисовки для каждого окна, начиная с первого и заканчивая последним.

Если код рисования каждого окна содержит линии drawMyCube() ИЛИ ЖЕ glClear(...), то частота кадров становится медленной.

drawMyCube() просто рисует куб, который вращается в зависимости от значения объекта sf :: Clock.

Если одно окно вызывает (любую из) этих функций, частота кадров составляет ~ 60 кадров в секунду.
Если два окна вызывают (любую из) этих функций, частота кадров составляет ~ 30 кадров в секунду.
Если три окна вызывают (любую из) эти функции, частота кадров составляет ~ 20 кадров в секунду.
Наконец, если все четыре вызывают (любую из) этих функций, частота кадров составляет ~ 15 кадров в секунду.

Это похоже на появление шаблона, поэтому я попытался удалить функции из 3 окон и вызвать их 10 раз из одного окна. Я ожидал, что частота кадров будет ~ 6 кадров в секунду, но она осталась на уровне 60.

Кто-нибудь знает, почему это происходит? Кажется, не будет никакого эффекта, если я удалю любые другие функции из методов рисования окна, например, gluLookAt() не замедляет

РЕДАКТИРОВАТЬ: ограничение частоты кадров установлено на ноль, а vsync имеет значение false.

0

Решение

Это звучит так же, как вертикальная синхронизация. Каждое из ваших окон ожидает обновления по вертикали, поэтому ваша ставка уменьшается вдвое.

Я знаю, что вы сказали, что vsync выключен, но, возможно, ваш драйвер видео заставляет его. Проверьте настройки вашего драйвера.

0

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

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

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