2.1架构
2.2类型
基本的device类型:hal:硬件渲染(发布)。这也不是直接访问硬件驱动,而是访问在上一层的hal。(在顶点处理过程中,如果硬件处理失败,可尝试混合处理及纯软处理,设定标志D3DCREATE_MIXED_VERTEXPROCESSING)
soft软件渲染(但是这种软渲染并不一定拥有同当前硬件相同的渲染能力,所以要经常检查)
ref完全精密的实现所有特征的软渲染可以,可用于验证feature,使用那些还没被做到硬件的feature,也可以用来验证是不是硬件驱动有bug,因为它是最规范完整的按feature来渲染。
2.3一些问题
xp与vista的显示的一些问题
1.在安全桌面下:如屏保、锁定、未登入状态等,hal device是不能访问的,D3D9的device会创建失败。但是vista可以使用系统service来创建
2.远程桌面:XP下不能再远程桌面上创建DEVICE vista可以通过remote desktop session来创建
2.4选择硬件设备
1 枚举硬件
IDirect3D9:: GetAdapterCount()获取显卡数量,D3D9中的显卡表示为0-GetAdapterCount()-1的整数,主显卡也可用D3DADAPTER_DEFAULT表示。
另外可以用IDirect3D9::GetAdapterIdentifier
获取显卡的厂商类型等信息。
2.获取指定显卡支持的显示模式
IDirect3D9::GetAdapterDisplayMode可获取硬件当前的显示模式
3.(可选)查询设备是否支持要用到的一些硬件加速,他还能查询设备是否支持swap chain
IDirect3D9::CheckDeviceType(窗口模式可省)
4.获取当前硬件的渲染能力