Здравствуйте Подскажите, каким образом можно программно сделать скриншот игры, в которую я играю? Именно нужно изображение всего того, что находится на главном окне, куда приложение производит рендеринг. И желательно найти наиболее быстрый способ, с выч. точки зрения. Может, у Directx/opengl есть какие-то API для сохранения буффера кадра в область памяти? Или видеоподистема windows (есть ли что-то "до" медленного GDI? (кстати, gdi ведь наверное не будет работать так как gl'и и X'ы ривуют в обход него), что может делать копирования выводимой на экран области видеопамяти)? Да и еще такой вопрос: каким образом можно узнать FPS этой внешней программы? Графические программы обычно используют InvalidateRect() или что-то более низкоуровневое? Можно ли отрендерить свое изображение (это самое значение FPS) поверх изображения, которое рендерится OpenGL'ом/DirectX'ом? Спасибо за ответ!
_DEN_ слишком медленно keYMax >Дизасми фрапс квалификация не позволяет Поэтому и спрашиваю. >Через перехват интерефейсов Вы имеете ввиду перехват вызовов функций? (или com-интерфейсы? ) Не подскажете на какие именно "интерфейсы" обратить внимание?
simnet_ glReadPixels от имени процесса-владельца Rendering Context и, вероятно нечто похожее в Direct3D.
Для других директ иксов не сложнее и для опенгл просто перехват функции смены буфферов. Там есть и все функции для перехвата. Если такой не устраивает перехват, то к господину Clerk за методикой захвата разрушением указателей)
и да внедрять длл в прцесс нада. самое пристое- прилинковать длл к екзе в таблицу импорта статически экспортом в саоей длл пустой функции. там тоже есть кодес)