среда, 16 февраля 2011 г.

My own Fraps counter

От нечего делать прикрутил пока счётчик FPS к DirectGL.

Дело в том, что на Mac нет встроенных средств подсчёта кадров в секунду, и программ наподобии Fraps я тоже не видел. Поэтому было решено написать встроенный счётчик, общий для Win и Mac, а за образец была взята утилита Fraps.


Я отсканировал цифры Fraps-а принт-скрином и выстроил их в текстуре 160x26. Потом я написал утилиту, которая считывала данные из этого bmp-файла и записывала их в виде массива dword-ов для C++. Этот массив зашивается в exe-файл при билде, его легко копировать в текстуру и не нужно таскать с проектом .bmp файл. Далее я написал простой класс, который ведёт подсчёт кадров и расчёт fps, а также выводит несколько текстурированных квадов с текстурой шрифта. Т. к. stretch бэк-буфера DX9 не влияет на счётчик Fraps, мой вариант рисуется после того, как на окно натянута текстура с изображением кадра, но до вызова SwapBuffers().

Получился счётчик, который как две капли воды похож на Fraps.

Комментариев нет:

Отправить комментарий