[DX9]如何将后台缓冲拷贝到IDirect3DTexture9里??
我用IDirect3DDevice9::GetBackBuffer()获取表面,这本身没啥问题,但是由于我需要将他转到IDirect3DTexture9里面去,这就得需要LockRect这个后台表面,但是接着却发现,DX9在初始化设备的时候,必须带有D3DPRESENTFLAG_LOCKABLE_BACKBUFFER标志才能LockRect成功,而这个东西又会降低应用程序的性能,所以,就给难住了。
而我又不想用RTT来做,因为已经有了GetBackBuffer()了,
请问各位大侠,除了通过LockRect方式将表面像素拷贝到IDirect3DTexture9里面去,还有什么别的方法??
[解决办法]
哦,你这个慢也许是从显存往外取数据的时候慢..
我当时保存只有几毫秒,是因为我是先GetRenderTargetData,然后从offscreenSurfasce再保存成bmp...