IDirect3DSurface9 *back = NULL; pDxdevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&back); pDxdevice -> CreateOffscreenPlainSurface(d3dpp.BackBufferWidth,d3dpp.BackBufferHeight, D3DFMT_A8R8G8B8,D3DPOOL_SYSTEMMEM, &pSurface, NULL); pDxdevice->GetRenderTargetData(back,pSurface); D3DLOCKED_RECT lockedRect; pSurface->LockRect(&lockedRect,NULL,D3DLOCK_READONLYint num = d3dpp.BackBufferWidth*d3dpp.BackBufferHeight*4; BYTE *pBits = new BYTE[num]; for (int i = 0; i < d3dpp.BackBufferHeight; i++) { memcpy((BYTE*)pBits + (d3dpp.BackBufferHeight-i-1) * d3dpp.BackBufferWidth * 4 , (BYTE*)lockedRect.pBits + i * lockedRect.Pitch ,d3dpp.BackBufferWidth * 4); } pSurface->UnlockRect();
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)