How can I take screenshots on the whole screen of the game very quickly? Something like 20-30 per second? (I want to convert them to video)
[[1]] I tried WMEncoder. The results were that WMEncoder can capture screen and screen areas only in video format (wma) using a set of pre-configured codecs. (29 fps best encoding result) .WMEncoder cannot take screenshots.
[[2]] I tried DirectX:
Surface s = device.CreateOffscreenPlainSurface( Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, Format.A8R8G8B8, Pool.SystemMemory); device.GetFrontBufferData(0, s); SurfaceLoader.Save("c:\\Screenshot"+i.ToString()+".bmp", ImageFileFormat.Bmp, s);
This works like gdi..very slow .... and only works in DirectX 1.0 because SurfaceLoader does not exist in directX 2.0
Another way I read in some post is using:
s = device.GetBackBuffer(0, 0, Microsoft.DirectX.Direct3D.BackBufferType.Mono);
but it only takes screenshots in a closing window.
[[3]] I tried to use Taksi (on sourceforge.net) ... but I don't know how to use it in C # and make it work.
Please help me...
source share