DirectX3D的后台缓存分辨率

本文介绍了Direct3D后台缓存的工作原理,指出后台缓存分辨率需与窗口显示区域一致,否则Direct3D会进行缩放。在窗口模式下,由于边框影响,实际显示区域小于窗口大小。全屏模式下,后台缓存分辨率必须是Direct3D兼容的,否则会导致程序异常。通过调用API函数可以枚举兼容的全屏分辨率,以确保设置正确。
摘要由CSDN通过智能技术生成
      什么叫后台缓存?

如果我们要显示一张图片,是不是直接显示出来?答案肯定不是,Direct3D会将要显示的图片信息先送到一个地方放着,等上一张图片显示完了后的,再真正的将这张图片显示出来,这个存放显示内容的地方就是后台缓存。

这里要注意的是,后台缓存的分辨率与窗口的显示区域的分辨率是一致的,如果不一致的话,Direct3D会进行相应的缩放。

如果你建立一个800*600的窗口,而且是窗口模式的,那么后台缓存分辨率应该是多少?你会很自然的答800*600,恭喜你,答错了!!!但是确实你可以设置为800*600,当你画一个左上角坐标是(500,400),右下角的坐标是(700,500)的矩形,它显示出来后的左上角坐标其实是(490,374),这并非是你想得到的结果。原因在于你将后台缓存设置了跟窗口大小一致了,可是你创建的那个窗口的显示区域并没有那么大!它其实是784*562,因为它窗口的大小是800*600,而它得留一些空间来显示边框,但是你的后台缓存又设置了800*600,而你又要将后台缓存的所有东西都显示出来,那么Direct3D会为你做转换,将后台缓存的东西进行缩放再显示,就是说缩小了(784/800)*(562/600),那么就会有上面的结果了。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值