【发布时间】:2015-06-04 15:41:45
【问题描述】:
现在我可以通过
获得名为 pBackBuffer 的后备缓冲区指针m_pDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO,
IREF_GETPPTR(pBackBuffer,IDirect3DSurface9));
然后在系统内存中创建一个名为 pSurfTemp 的表面
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 );
然后我通过
获取后台缓冲区数据m_pDevice->GetRenderTargetData(pBackBuffer, pSurfTemp);
数据看起来像这样转换:videoMemory->systemMemory
由于下一步是再次操作显存中的数据,它会将其从系统内存复制回显存。浪费时间。
我想复制显存里面的数据,怎么办?
【问题讨论】:
标签: directx direct3d directx-9