Как рассчитать частоту кадров в простом приложении Direct2D? - PullRequest
0 голосов
/ 15 сентября 2010

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

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

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

1 Ответ

1 голос
/ 15 сентября 2010

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

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

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

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

...