Как рассчитать частоту кадров в простом приложении Direct2D?

Привет, ребята, и спасибо за поиск. Я создал простое приложение D2D от MSDN, доступное здесь. Теперь я хочу нарисовать несколько примитивов и добавить счетчик fps.

У меня есть событие OnRender(), где я рисую прямоугольники и так далее. У меня также есть вызов RenderTextInfo(), где я вызываю RenderTarget->DrawText. Куда мне добавить логику для подсчета количества кадров в секунду?

Большое спасибо.

1 ответ

Решение

Я не знаю точных вещей Direct2D, но это может помочь.

По сути, у вас есть два варианта. Либо вы обновляете частоту кадров при рисовании кадра, либо каждую секунду (или любой другой временной интервал).

Если вы подсчитываете его, когда рисуете рамку, вы можете просто получить текущее время, когда вы рисуете рамку, и вычесть из него время, когда вы нарисовали последний кадр. Это дает вам время, потраченное на рисование этого кадра. Обратная величина этого (то есть 1/x) является частотой кадров.

Если вы посчитаете его через регулярный промежуток времени, вам нужно будет запускать какое-то событие на каждом интервале, которое проверяет, сколько кадров было нарисовано с момента последнего запуска этого события. Разделите это на ваш интервал (если это одна секунда, вам не нужно делить, конечно), и это ваш счетчик кадров в секунду. Не забывайте увеличивать счетчик каждый раз, когда вы рисуете рамку.

Другие вопросы по тегам