Eu gostaria de "enganchar" um jogo de corrida, digamos Mario Bros, e capturar cada quadro renderizado ... salvando esse quadro em um arquivo de imagem. Um bom exemplo de algo semelhante é o FRAPS. --Nota: não quero capturar a tela inteira / área de trabalho. Eu quero capturar uma janela direcionada.
Eu dei uma olhada no OBS (Open Broadcasting Software), mas não é particularmente rápido. Não me interpretem mal, é um ótimo software, mas infelizmente não existe documentação ruim / ruim, tornando um projeto enorme escrito em c e c ++ quase inacessível para um programador novo em c ++.
Também dei uma olhada no GamingAnywhere , mas, infelizmente, não consigo fazê-lo funcionar, há muito pouca / nenhuma documentação, é executada apenas no VS2010 e é confusa (com pouca nomeação de variáveis). No entanto, é um projeto de pesquisa e, portanto, é compreensivelmente indocumentado e confuso.
Sei que isso pode ser feito com OpenGL, GDI e Direct3D, mas não consigo encontrar bons exemplos na rede.
Li que glReadlPixels (usando OpenGL) pode ser usado e li a documentação , mas o post não mencionou nada sobre conectar-se a gráficos de jogos / aplicativos em execução.
Questões:
Posso conectar-me aos gráficos de um jogo desenvolvido com OpenGL, usando, por exemplo, o Direct3D? A biblioteca usada para conectar tem que ser a mesma usada pelo jogo?
Como conectar nos quadros renderizados do jogo para que eu possa produzir esses quadros em arquivos de imagem ou em um arquivo de vídeo? (Apenas alguns links ou uma breve explicação do que eu preciso fazer seriam ótimos)
BackBuffer - Eu li que é muito rápido acessar o BackBuffer para recuperar os quadros. Alguém tem um exemplo para mim sobre como fazer isso com as bibliotecas mais recentes? Eu descobri que a maioria dos exemplos está desatualizada.
Para meus propósitos, há claramente "isso é mais rápido que isso"? O que quero dizer é que, digamos, o OpenGL, seria mais rápido para meus propósitos?
Se alguém souber de um projeto de código aberto (que faz essencialmente o que eu preciso) que esteja ativamente desenvolvido e bem documentado, eu adoraria saber sobre ele.