мерцание во время изменения формы - PullRequest
4 голосов
/ 08 мая 2011

Я использую FPSAnimator и jogl, чтобы нарисовать вращающийся квад на GLCanvas.Обычно графика не мерцает и вращение происходит плавно, но когда я изменяю размер окна или перемещаю его из невидимой области экрана в видимую область, добавляются дополнительные запросы на перерисовку.Как я могу отфильтровать эти дополнительные запросы, так как все рисование выполняется FPSAnimator

1 Ответ

3 голосов
/ 08 мая 2011

Вы можете попробовать передать параметр: -Dsun.awt.noerasebackground=true в JVM в командной строке. Это должно уменьшить / убрать мерцание.

Проблема описана в JoglUserGuide

В частности:

Другая проблема, которая иногда возникает в Windows, - это мерцание во время изменения размера GLCanvas. Это вызвано тем, что AWT перерисовывает фон холста и не может быть переопределено для каждого холста, например, при создании подкласса Canvas в GLCanvas. Перекрашивание фона Canvases в Windows можно отключить, указав системное свойство -Dsun.awt.noerasebackground = true. Нужно ли указывать этот флаг, зависит от приложения и не должно быть сделано универсально, а вместо этого на индивидуальной основе. Некоторые подробности можно найти в теме «СОВЕТ: JOGL + Swing flicker» на форуме JOGL.

...