ALWAYS on top
fraps.com), меня устраивает, но вот знать бы КАК ОНА ЭТО ДЕЛАЕТ... Только пожалуйста не надо рекомендовать написать письмо автору этой программы - уже сделал и уже очень долго жду ответа.
Добрый день, all. Пожалуйста, хоть раз стисните зубы и помогите темному чайнику, вместо того, чтобы бить его ногами. :D Мне надо сделать программу, в которой в углу ПОСТОЯННО будет что-то висеть: таймер, сообщение от администратора и т. п. Но это должно работать и в играх, где используется OpenGL и Direct3D. Так, как это делает программа FRAPS (
а как делает FRAPs?
Цитата:
Originally posted by man2002ua
а как делает FRAPs?
а как делает FRAPs?
FRAPS - программа для вывода FPS (frames per second) в играх и всех остальных приложениях, использующих Direct3D или OpenGL. Запускаешь ее - она вешается в трей. Потом когда заходишь в игру - видишь циферки в том углу, в каком сам указал. Можно задавать стиль циферок Opaque и Transparent. Но выводится не какой-нибудь шрифт типа Arial или Times, а очень простой (для его начертания) шрифт. Прелесть в том, что висит это ВСЕГДА, практически безо всякого мерцания. Может кто видел логотип NVidia в правом нижнем углу при использовании Direct3D (и только Direct3D)? Думаю, что FRAPS использует похожий принцип, хоть и не так красиво рисует :) Вообще программа бесплатная - можно скачать и самому посмотреть
(у меня выход в инет только сюда открыт, скачать не могу, если скачаешь - кинь мне на [email]man@kiev.vectis.ru[/email], я раскручу и гляну принцип)
Кстати, насчет перехвата операции обновления экрана.... Нельзя ли поподробнее? Мне надо будет вносить свои изменения в дрова видео? или может свои писать? :o
Кстати это очень интересная тема. Я помнится задавал похожий вопрос, но ответов так и не дождался:???:
Насчет перехвата обновления - в DirectX 8.1 появился интерфейс IMediaDet, к-й позволяет подключаться к текущему Media Source и управлять им (получать/устанавливать FPS, снимать картинки и т.п.) Возможно с его помощью можно определить, когда основное устройство выполнило перерисовку плоскости - и влепить после этого свою картинку...
...еще надо подумать...
кстати - внутри фрапса стоят две Hook процедуры - для WH_CALLWNDPROCRET и WH_CBT (могет быть, что идет перехват обновления с их помощью.. надо опробовать реально)