Я не знаю точных вещей Direct2D, но это может помочь.
В принципе, у вас есть два варианта.Либо вы обновляете частоту кадров при рисовании кадра, либо каждую секунду (или любой другой временной интервал).
Если вы учитываете это при рисовании кадра, вы можете просто получить текущее время при рисовании кадраи вычтите из него время, когда вы нарисовали последний кадр.Это дает вам время, потраченное на рисование этого кадра.Обратной величиной этого (то есть 1 / x) является частота кадров.
Если вы подсчитываете это через регулярный интервал времени, вам нужно иметь какое-то событие, запускающее каждый интервал, который проверяет, сколько кадров было нарисовано с момента последнеговремя, когда это событие произошло.Разделите это на ваш интервал (если это одна секунда, вам не нужно делить, конечно), и это ваш счетчик кадров в секунду.Не забывайте увеличивать счетчик каждый раз, когда рисуете рамку.