Thanks for release, but as far as i know it will not work with directx8, cause CreateOffscreenPlainSurface is not present there.
Little snippet where you can capture the whole screen with directx8 (not only game window sadly)
bool CPythonGraphic::SaveScreenShot()
{
HRESULT hr;
D3DDISPLAYMODE mode;
if (FAILED(hr = ms_lpd3dDevice->GetDisplayMode(&mode))) {
TraceError("CPythonGraphic::SaveScreenShot() - GetDisplayMode failed!");
return false;
}
LPDIRECT3DSURFACE8 surf;
if (FAILED(hr = ms_lpd3dDevice->CreateImageSurface(mode.Width, mode.Height, D3DFMT_A8R8G8B8, &surf))) {
TraceError("CPythonGraphic::SaveScreenShot() - CreateImageSurface failed!");
return false;
}
if (FAILED(hr = ms_lpd3dDevice->GetFrontBuffer(surf))) {
TraceError("CPythonGraphic::SaveScreenShot() - GetFrontBuffer failed!");
surf->Release();
return false;
}
else
{
if (!CreateDirectory("screenshot", NULL) && ERROR_ALREADY_EXISTS != GetLastError()) {
TraceError("CPythonGraphic::SaveScreenShot() - Failed to create or find screenshot folder failed!");
return false;
}
SYSTEMTIME st;
GetSystemTime(&st);
char szFileName[MAX_PATH];
sprintf_s(szFileName, "screenshot/screenshot_%04d%02d%02d_%02d%02d%02d.bmp",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
D3DXSaveSurfaceToFile(szFileName, D3DXIFF_BMP, surf, NULL, NULL);
}
if (surf)
{
surf->Release();
surf = nullptr;
}
return true;
}