Vorrei "agganciarmi" a un gioco in esecuzione, ad esempio Mario Bros, e catturare ogni fotogramma reso ... salvando quel fotogramma in un file di immagine. Un buon esempio di qualcosa di simile è FRAPS. - Nota: non voglio catturare l'intero schermo / desktop. Voglio catturare una finestra mirata.
Ho dato un'occhiata a OBS (Open Broadcasting Software) ma non è particolarmente veloce. Non fraintendetemi, è un ottimo software, ma sfortunatamente non c'è / scarsa documentazione, il che rende un progetto enorme scritto in c e c ++ quasi inaccessibile per un programmatore da nuovo a c ++.
Ho anche dato un'occhiata a GamingAnywhere , ma sfortunatamente non riesco a farlo funzionare, c'è pochissima / nessuna documentazione, funziona solo su VS2010 ed è disordinato (con un nome variabile scarso). Tuttavia, è un progetto di ricerca e quindi è comprensibilmente privo di documenti e disordinato.
So che questo può essere fatto con OpenGL, GDI e con Direct3D, ma non riesco a trovare alcuni buoni esempi in rete.
Ho letto che glReadlPixels (usando OpenGL) può essere usato e ho letto la documentazione , ma il post non menzionava nulla sull'aggancio a una grafica di gioco / applicazione in esecuzione.
Domande:
Posso agganciarmi alla grafica di un gioco sviluppato con OpenGL, usando, per esempio, Direct3D? La libreria utilizzata per l'aggancio deve essere uguale a quella utilizzata dal gioco?
Come posso collegarmi ai frame renderizzati del gioco in modo da poterli output su file di immagine o su un file video? (Solo alcuni link o una breve spiegazione di ciò che devo fare sarebbe fantastico)
BackBuffer - Ho letto che è molto veloce accedere al BackBuffer per recuperare i frame. Qualcuno ha un esempio per me su come farlo con le ultime librerie? Ho scoperto che la maggior parte degli esempi non sono aggiornati.
Per i miei scopi, c'è chiaramente "questo è più veloce di così"? Quello che voglio dire è, sarebbe, dire OpenGL, essere più veloce per i miei scopi?
Se qualcuno è a conoscenza di un progetto open source (che fa essenzialmente ciò di cui ho bisogno) che è attivamente sviluppato e ben documentato, mi piacerebbe saperlo.