How can you dump GPU memory (images and such that are loaded on it) to the standard format ?
As far as dumping resources from running Direct3D 6.x, 8.x and 9.x applications, you might want to check out 3D Ripper DX.
Here's a quote from the tool's website about its features:
With 3D Ripper DX you can:
- Capture all geometry, textures and shaders, rendered during single frame;
- Import captured geometry into 3D Studio Max or Maya;
- See what exactly has been drawn by each individual draw call;
- See renderstate, textures, vertex streams, index stream, vertex declaration, vertex and pixel shaders (including HLSL source code if available) of each individual draw call.
If you're asking how to dump the texture into the original file format from which it was loaded, there is no way to do this. Once the texture is loaded, be it from a JPEG, PNG, BMP, TGA, etc., it is represented as an in-memory bitmap using one of many standard pixel formats. There is often no way to determine what the source file format was. However, you can save it back to any format you choose. Keep in mind that if the texture started out in a lossy format (like JPEG) then there is no way to get that "original" JPEG back once it's been loaded into memory--it would have to be re-compressed to be saved in JPEG format again, and that could very well lead to further quality loss. However, you could save it to a lossless format like PNG to avoid that quality loss.