Quiero escribir un programa de screencasting para la plataforma Windows, pero no estoy seguro de cómo capturar la pantalla. El único método que conozco es usar GDI, pero tengo curiosidad por saber si hay otras formas de hacerlo, y si las hay, ¿cuál incurre en la menor sobrecarga? La velocidad es una prioridad.
El programa de screencasting será para grabar imágenes del juego, aunque, si esto reduce las opciones, todavía estoy abierto a cualquier otra sugerencia que quede fuera de este alcance. El conocimiento no es malo, después de todo.
Editar : Me encontré con este artículo: Varios métodos para capturar la pantalla . Me ha presentado la forma de hacerlo de la API de Windows Media y la forma de hacerlo de DirectX. En la conclusión se menciona que deshabilitar la aceleración de hardware podría mejorar drásticamente el rendimiento de la aplicación de captura. Tengo curiosidad de por qué es esto. ¿Alguien podría completar los espacios en blanco que faltan por mí?
Editar : leí que los programas de captura de pantalla como Camtasia usan su propio controlador de captura. ¿Podría alguien darme una explicación detallada sobre cómo funciona y por qué es más rápido? También es posible que necesite orientación para implementar algo así, pero estoy seguro de que hay documentación existente de todos modos.
Además, ahora sé cómo FRAPS graba la pantalla. Engancha la API de gráficos subyacente para leer desde el búfer posterior. Por lo que entiendo, esto es más rápido que leer desde el búfer frontal, porque estás leyendo desde la RAM del sistema, en lugar de la RAM de video. Puedes leer el artículo aquí .
MovePlayerLeft(). Y también registra el tiempo y la duración de las pulsaciones de teclas y otras entradas. Luego, cuando está en modo de reproducción, simplemente ignora la entrada y lee los datos grabados. Si, en los datos, ve una tecla izquierda presionada, llama MovePlayerLeft().