Sign in to follow this  
rongshuxiacy

Read render picture from another application

Recommended Posts

rongshuxiacy    124
does anybody know there are apis about reading the rendering picture from a game application like War3 in windows?I want to make an application which is just like a video recording software record the game screen to a file.are there any apis?

Share this post


Link to post
Share on other sites
Bacterius    13165
The traditional way of doing it is to literally hook your own code into the rendering code for the game application in question. Basically, immediately before the game draws the final image to the screen, insert some code which'll allow your own application to access it easily (like initialize some shared memory and store the frame there, or something like that). This is how FRAPS does it. It is not trivial, but it's doable. See "directx hooking" on Google.

Other than that, no, I do not believe there are any ready-made API's that'll do what you want. There are window capture functions in GDI, but DirectX/OpenGL windows typically evade those (you only get a black screen) and they are not very efficient.

The crux of the problem being that if you want to get a reasonable recording framerate, you need to capture the game's backbuffer, not the global frontbuffer (which is subject to locks and stalls, and is just generally sucky). Of course you can just bitblt the hell out of it, but don't expect the performance to be up to far with software like FRAPS, or to even work properly at all. Edited by Bacterius

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this