OpenGL: как минимизировать рисование? - PullRequest
0 голосов
/ 02 декабря 2018

Мой экран OpenGL состоит из 2 треугольников и 1 текстуры, и ничего больше.Я хотел бы обновить экран как можно меньше, чтобы сэкономить электроэнергию и ограничить использование CPU / GPU.К сожалению, когда моя процедура draw_scene возвращается рано, ничего не рисуя, экран OpenGL становится черным - даже если я никогда не вызываю glutSwapBuffers.Кстати, цвет моего фона не черный.Кажется, что если я не рисую, окно OpenGL теряет свое содержимое.Как я могу минимизировать количество прорисовки?

1 Ответ

0 голосов
/ 02 декабря 2018

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

Чтобы сэкономить электроэнергию, вы должны отключить цикл простоя (или просто передать все, что делает, и сразу же вернуться к планировщику ОС), а таймеры не создают события.

...