我想在显卡内存中复制一个表面(它叫做视频内存吗?),这就是我得到后缓冲区表面的方法:
HRESULT hRes = m_pDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO,
IREF_GETPPTR(pBackBuffer,IDirect3DSurface9));
然后我将其锁定(此处省略了代码),并将数据复制到后台缓冲区表面,如下所示:
IRefPtr<IDirect3DSurface9> pSurfTemp;
hRes = m_pDevice->CreateOffscreenPlainSurface(
g_Proc.m_Stats.m_SizeWnd.cx, g_Proc.m_Stats.m_SizeWnd.cy,
s_bbFormat, D3DPOOL_SYSTEMMEM,
IREF_GETPPTR(pSurfTemp,IDirect3DSurface9), NULL );
hRes = m_pDevice->GetRenderTargetData(pBackBuffer, pSurfTemp);
我在视频内存的第一个代码块中获得了后缓冲区表面数据吗? CreateOffscreenPlainSurface中的参数是D3DPOOL_SYSTEMMEM。我可以通过将此参数更改为D3DPOOL_SCRATCH或其他东西来复制视频内存中的表面吗?