2011-12-15 20 views
7

Buenas tardes chicos, Actualmente estoy trabajando en un monitor de temperatura NVIDIA GPU en Delphi 2010. También proporcionará información del sistema de WMI.Delphi - DirectX - OSD/Superposición de pantalla

Actualmente, estoy trabajando en unos pocos métodos diferentes de OSD (visualización en pantalla) para diferentes situaciones. Ya tengo 2 métodos, pero necesito otro específicamente para juegos.

Lo que quiero hacer es mostrar una superposición u OSD con texto usando Direct2D o Direct3D. La inyección de DLL es arriesgada, sin mencionar que es bastante difícil de perfeccionar. Como se puede imaginar, estoy tratando de superponerlo en juegos, pero superponerlo en cualquier lugar sería igual de bueno.

Como se puede imaginar, usar Direct2D o Direct3D para superponerlo sería mucho mejor. Enganchar sería una idea, pero una vez más, eso probablemente también me lleve a inyectar código.

Básicamente, quiero el método más simple para mostrar texto en la pantalla que no tiene una gran pérdida de rendimiento, y no parpadea cuando la pantalla se actualiza (es decir, se renderiza un nuevo fotograma). Me encantaría poder dibujar imágenes también (ya que incluyo gráficos en mi aplicación, sacarlos sería una ventaja, pero sacar el texto es la tarea principal aquí).

Honestamente, no me importa si tengo que conectar y/o inyectar, pero no tengo experiencia en hacerlo y definitivamente necesitaría mucha ayuda con eso. Hacer algo similar a lo que hace MSI Afterburner o FRAPS sería exactamente lo que busco.

También me falta conocimiento de programación o diseño DX, así que de nuevo, se necesita mucha ayuda allí. Tengo la mayor parte de la aplicación diseñada y en funcionamiento, y es cuestión de terminar esta gran tarea y limpiar las otras partes más pequeñas.

¿Alguna idea?

Editado: Se ha reducido el número de párrafos para facilitar la lectura. Reducirlo más probablemente no explicaría suficientemente el punto. Para las personas que vieron la versión editada, investigué mucho pero no obtuve ningún resultado.

Editado: ¿Nadie recibió más información? ¿Sería posible utilizar una DLL escrita en otro idioma para generar la OSD, y simplemente pasarle mis parámetros? Si es así, ¿cómo lo haré y existe algún código de muestra en cualquier idioma que pueda usar para trabajar?

+4

Jugueteado con algo similar hace varios años (para un propósito muy diferente). Debo decir que no es lo más fácil de lograr en el mundo (a pesar de que TENGO experiencia con OpenGL, DirectX (2D y 3D) y el desarrollo de videojuegos. Las superposiciones son dolorosas. Esperar que alguien brinde una buena solución (me puedo beneficiar de también). Ha hecho +1 en la pregunta. Sin embargo, recomendamos reducir los párrafos si puede! – LaKraven

+0

Gracias LaKraven. No me imaginaba que sería fácil de hacer. Sin embargo, soy un desarrollador de OCD, y no me gusta. Ponga una aplicación hasta que esté contento con ella. Si no quiero usarlo porque es insatisfactorio con las aplicaciones existentes, no siento que pueda ponerlo en el mundo a menos que esté diseñado para un propósito específico. Reduje la cantidad de contexto en la pregunta original :) –

Respuesta

2

Es posible que desee echar un vistazo a Taksi. Es una especie de código abierto FRAPS. Y sí, la inyección de código y el enganche están involucrados. Y bueno, escrito en C++.

+0

Gracias "iamjoosy", eso es algo que supongo. Construir en RAD Studio 2010 me daría la opción de trabajar con él, pero aún prefiero Delphi para este proyecto. Aún así lo hice, ya que vale la pena investigarlo. –