   save backbuffer and load sovled!!!!!
  I save rendertarget surface to memory for data exchange. and I wanna load it back to display it on screen for debug(see if any problem)// render complete and not present   // save backbuffer to diskDWORD * pl = new DWORD[size];if( FAILED(d->GetRenderTargetData(backbuffer, destsurface))){::MessageBox(0,"fail to copy card data",0,0);}destsurface, 0, 0);D3DSURFACE_DESC desc;destsurface->GetDesc( &desc );D3DLOCKED_RECT  lockrect;destsurface->LockRect(&lockrect, 0, 0);DWORD *dword= (DWORD*)lockrect.pBits;for(int i =0;i<desc.Height;i++){for(int j=0;j<desc.Width;j++){// x * pitch/4 // width *x + y int index = i*lockrect.Pitch/4 + j; pl[index] = dword[index];}}    // save pl to disk by fstream    d->present(0,0,0,0); // display backbuffer// load and see if any problem    // read file first to plRECT rect;rect.bottom = heigth;rect.left = 0 ;rect.right = width;rect.top = 0 ;HRESULT hr_load = D3DXLoadSurfaceFromMemory(backbuffer, 0, 0, pl, D3DFMT_X8R8G8B8, width * 4, 0, &rect, D3DX_FILTER_NONE, 0xff000000);   d->present(0,0,0,0);this way I get different display,one is true-color and another is something like 256 color style. but I only do data transfer ,do not any color handle. where is problem?[Edited by - derek7 on June 4, 2006 6:49:19 AM]