Я бы хотел «зацепиться» за работающую игру, скажем Mario Bros, и захватить каждый отрендеренный кадр ... сохранив этот кадр в файл изображения. Хорошим примером чего-то подобного является FRAPS. - Примечание: я не хочу снимать весь экран / рабочий стол. Я хочу захватить целевое окно.
Я посмотрел на OBS (Open Broadcasting Software), но это не особенно быстро. Не поймите меня неправильно, это отличное программное обеспечение, но, к сожалению, нет / плохой документации, что делает массивный проект, написанный на c и c ++, практически недоступным для начинающего программиста на c ++.
Я также взглянул на GamingAnywhere , но, к сожалению, я не могу заставить его работать, документации очень мало / нет, она работает только на VS2010 и грязная (с плохим именованием переменных). Тем не менее, это исследовательский проект, и поэтому он по понятным причинам недокументирован и грязен.
Я знаю, что это можно сделать с помощью OpenGL, GDI и Direct3D, но я не могу найти несколько хороших примеров в сети.
Я читал, что можно использовать glReadlPixels (используя OpenGL), и я прочитал документацию , но в посте ничего не упоминалось о подключении к работающей графике игры / приложения.
Вопросов:
Могу ли я подключиться к графике игры, разработанной с помощью OpenGL, используя, скажем, Direct3D? Должна ли библиотека, используемая для перехвата, быть такой же, как библиотека, используемая в игре?
Как подключиться к отображаемым кадрам игры, чтобы я мог выводить эти кадры в файлы изображений или в видеофайл? (Просто несколько ссылок или краткое объяснение того, что мне нужно сделать, было бы здорово)
BackBuffer - я прочитал, что это очень быстрый доступ к BackBuffer для получения кадров. Есть ли у меня пример для меня, как это сделать с последними библиотеками? Я обнаружил, что большинство примеров устарели.
Для моих целей, есть ли какое-то однозначное «это быстрее, чем это»? Что я имею в виду, скажем, OpenGL, будет быстрее для моих целей?
Если кто-то знает о проекте с открытым исходным кодом (который, по сути, делает то, что мне нужно), который активно развивается и хорошо документируется, я бы хотел узнать об этом.