添加manifest解决IDirect3DDevice9::GetFrontBufferData抓屏返回失败
问题:
通过Direct3D9的接口GetFrontBufferData去实现抓屏,一直返回失败。
原因:
电脑的屏幕分辨率是2560x1600,并且经过150%的缩放,导致创建离屏表面时,通过GetSystemMetrics获取到的屏幕分辨率不是真实的分辨率,是经过缩放的1707x1067
解决办法:
创建离屏表面时,要获取屏幕的真实分辨率。
应用程序必须告诉系统DPI-Awareness来获得真实的分辨率。
可以通过添加manifest文件到VS的工程中,来告诉系统DPI Awareness,步骤如下
原创
2021-07-05 08:58:22 ·
560 阅读 ·
2 评论