??很多地方都需要用到截屏/录屏技术比如桌面直播,桌面录制等等在微软Windows平台,有很多截屏的接口不过大多数性能并不理想,Windows8以后微软引入了一套新的接口叫“Desktop Duplication API”,应用程序可以通过这套API访问桌面数据。而由于Desktop Duplication
??还有一点有意思的是Duplication API获取到的桌面数据,不管显示模式如何设置都永远是32位RGBA数据,其实这样方便的多了不用考虑其他可能的情况,比如24位等
??综合来看,各方面秒杀GDI截屏技术易用性上也比MirrorDriver技术好得多,昰Windows8以后平台的截屏技术首选
??首先,这套接口是集成在DirextX之中的所以更大部分DirectX接口的使用方式基本一致,也就是通过D3D各种QueryInterface,各种Enum核心方法,是AcquireNextFrame先简单说下流程。
- 把数据从GPU映射到内存中
- 拷贝需要的数据到自己的buffer里
??这里把他跟传统的使用GDI截屏技术进行对比。程序只截取桌面数据然后把数据保存到自己的内存buffer中,不做其他操作CPU有点差,如果是好点的cpu性能数据应该是更好看,不过做对比还是佷明显能看出来的
我的笔记本比较老了,所以GDI最多只能跑到20帧了不过可以看到,即使这种情况下当不设置帧率,也就是无限循环截屏的情况下DXGI的性能只能用可怕来形容。。
合作请联系QQ(转载请注明作者和出处~)