|
|
D3D如何?得surface的pixel?我的做法???
我GetDC後,?得hr=D3DERR_INVALIDCALL
void CAppDrawAdv: ivideGrid()
{
LPDIRECT3DSURFACE9 surface=NULL;
D3DDISPLAYMODE display;
m_pD3DDevice->GetDisplayMode(0,&display);
m_pD3DDevice->CreateOffscreenPlainSurface(display.Width,display.Height,D3DFMT_R8G8B8,D3DPOOL_DEFAULT,&surface,NULL);
m_pD3DDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&surface);
D3DXSaveSurfaceToFile(L"file.bmp",D3DXIFF_BMP,surface,NULL,NULL);
HDC dc;
HRESULT hr=surface->GetDC(&dc);//hr=-2005530516
COLORREF color=GetPixel(dc,0,0);
USHORT r=GetRValue(color);
USHORT g=GetGValue(color);
USHORT b=GetBValue(color);
surface->Release();
}
hr=-2005530516
HRESULT: 0x8876086c (2289436780)
Name: D3DERR_INVALIDCALL
Description: Invalid call
Severity code: Failed
Facility Code: FACILITY_D3D (2166)
Error Code: 0x086c (2156)
|
|