截屏在游戏里非常常见,很多初学者都想实现这个功能~~
截屏本身并不复杂,在d3d中甚至很短的代码就可以完成。
首先我们下来了解一下截屏的原理:
我们渲染3d场景的时候,是将我们要绘制的图形画到内存Buff中,也就是我们的前台缓冲区里面,然后前台缓冲区再把图形显示到屏幕上来。所以,我们的图像在内存中,缓冲区里面已经保存好了~~那么我们只要把这个缓冲区的内容保存下来就可以了,基于这个思想,我们查找相关函数。结果果然找到了一个函数D3DXSaveSurfaceToFile。
这个函数需要提供Surface,这个很简单了,根据这个思路,我们完成这个方法的代码: