向D3D高手请教!
我创建了一个D3D设备:用的描述如下
d3dpp.BackBufferFormat = BackFmt;
d3dpp.BackBufferCount = 1;
d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.Windowed = FALSE;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16_LOCKABLE;
d3dpp.FullScreen_RefreshRateInHz = m_nFreshRate;
d3dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
d3dpp.hDeviceWindow = m_hWnd;
然后又用getbackbuffer创建了一个surface引用
最后想用surface的lockrect方法得到显示缓冲区的地址却失败了,求救
代码如下
IDirect3DSurface8* pSurface = NULL;
if( FAILED(m_pD3DDevice->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &pSurface)) )
return;
D3DLOCKED_RECT lockrect;
ZeroMemory(&lockrect, sizeof(lockrect));
if( FAILED( pSurface->LockRect(&lockrect, NULL, D3DLOCK_READONLY) ))
return;