2011-12-15 17 views
7

Buonasera ragazzi, Attualmente sto lavorando a un monitor della temperatura della GPU NVIDIA in Delphi 2010. Fornirò anche informazioni sul sistema da WMI.Delphi - DirectX - OSD/Sovrapposizione schermo

Attualmente, sto lavorando su alcuni metodi OSD (On-Screen Display) diversi per situazioni diverse. Ho già 2 metodi, ma ne ho bisogno di un altro appositamente per i giochi.

Quello che voglio fare è visualizzare un overlay o OSD con del testo usando Direct2D o Direct3D. L'iniezione di DLL è rischiosa, per non dire abbastanza difficile da perfezionare. Come puoi immaginare, sto cercando di sovrapporlo ai giochi, ma sovrapponendoli ovunque sarebbe altrettanto buono.

Come potete immaginare, usare Direct2D o Direct3D per sovrapporlo sarebbe molto meglio. L'hooking sarebbe un'idea ma, ancora una volta, ciò probabilmente mi porterebbe a richiedere l'iniezione di codice.

In sostanza, voglio il metodo più semplice per visualizzare il testo sullo schermo che non ha una pesante perdita di prestazioni, e non sfarfalla quando lo schermo si aggiorna (cioè viene eseguito il rendering di un nuovo frame). Mi piacerebbe anche essere in grado di disegnare le immagini (dato che includo i grafici nella mia app, l'output di quelli sarebbe un bonus ma l'output del testo è il compito principale qui).

Sinceramente non mi importa se ho bisogno di agganciare e/o iniettare, ma non ho esperienza nel farlo e assolutamente avrei bisogno di molto aiuto in questo. Fare qualcosa di simile a ciò che MSI Afterburner o FRAPS farebbe sarebbe esattamente quello che sto cercando.

Inoltre, non ho alcuna conoscenza della programmazione o del design DX, quindi, ancora una volta, è necessario un grande aiuto. Ho progettato e lavorato la maggior parte delle app, e si tratta di finire questa grande attività e pulire le altre parti più piccole.

Qualche idea?

Modificato: Ridotto il numero di paragrafi per facilitare la lettura. Ridurlo di più probabilmente non spiegherebbe abbastanza il punto. Per le persone che hanno visto la versione modificata, ho fatto ricerche pesanti ma non ho prodotto risultati.

Modificato: Nessun altro input? Sarebbe invece possibile utilizzare una DLL scritta in un'altra lingua per generare l'OSD e semplicemente passare i miei parametri ad essa? Se sì, come potrei farlo e c'è qualche codice di esempio in qualsiasi lingua con cui potrei lavorare?

+4

Toyed con una cosa simile diversi anni fa (per scopi molto diversi). Devo dire che non è la cosa più facile del mondo ad acheive (anche se ho esperienza con OpenGL, DirectX (2D e 3D) e sviluppo di videogiochi.Le sovrapposizioni sono dolorose Sperando che qualcuno offra una soluzione piacevole (posso trarre beneficio da +) 1. Ho suggerito di ridurre i paragrafi se puoi, però! – LaKraven

+0

Grazie a LaKraven, non immaginavo sarebbe stato facile da fare, tuttavia, sono uno sviluppatore di OCD, e io 't mettere un'app fuori fino a che non sono felice con esso.Se io non voglio usarlo me stesso perché è subpar alle applicazioni esistenti, non ho voglia di metterlo fuori nel mondo a meno che non sia solo progettato per uno scopo specifico Ho ridotto la quantità di contesto nella domanda originale però :) –

risposta

2

Si consiglia di dare un'occhiata a Taksi. È una specie di FRAPS open source. E sì, l'iniezione del codice e l'hooking sono coinvolti. E bene, scritto in C++.

+0

Grazie "iamjoosy", è qualcosa che immagino. Costruire in RAD Studio 2010 mi darebbe la possibilità di lavorarci, ma preferisco ancora Delphi per questo progetto. Ho ancora + 'd anche se dal momento che vale la pena esaminare. –