Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delphi - DirectX - OSD/Screen Overlay

Good evening guys, I'm currently working on an NVIDIA GPU temperature monitor in Delphi 2010. It's also gonna provide system information from WMI.

At present, i'm working on a few different OSD (On-Screen Display) methods for different situations. I've got 2 methods already, but i need another specifically for games.

What i'm wanting to do is display an overlay or OSD with some text using Direct2D or Direct3D. DLL injection is risky, not to mention quite tricky to perfect. As you can imagine, i'm trying to overlay it into games, but overlaying it anywhere would be just as good.

As you can imagine, using Direct2D or Direct3D to overlay it would be much better. Hooking would be one idea but again, that would likely lead to requiring me to inject code too.

Essentially, i want the simplest method of displaying text on screen that doesn't have a hefty performance loss, and doesn't flicker when the screen refreshes (i.e. a new frame is rendered). I'd love to be able to draw images as well (since i include graphs in my app, outputting those would be a bonus but outputting the text is the major task here).

I honestly don't mind if i need to hook and/or inject, but i've no experience with doing so and absolutely would need a lot of help with that. Doing something similar to what MSI Afterburner or FRAPS do would be exactly what i'm after.

I also lack any knowledge of DX programming or design, so again, heavy help is needed there. I've got most of the app designed and working, and it's a matter of finishing up this one large task, and cleaning up the other smaller parts.

Any ideas?

Edited: Reduced the number of paragraphs for easier reading. Reducing it more would likely not explain the point enough. For people seeing the edited version, i did do heavy research but yielded no results.

Edited: No one got any more input? Would it instead be possible to use a DLL written in another language to output the OSD, and simply pass my parameters to it? If so, how would i go about doing so and is there any sample code in any language i could use to work with?

like image 704
Scott P Avatar asked Dec 15 '11 03:12

Scott P


1 Answers

You might want to have a look at Taksi. It is sort of an open source FRAPS. And yes, code injection and hooking is involved. And well, written in C++.

like image 198
iamjoosy Avatar answered Nov 20 '22 19:11

iamjoosy