DXUT框架剖析(11)
DXUT统计函数
函数
描述
DXUTGetFPS
获取当前每秒提交的帧数
DXUTGetFrameStats
获取一个指向字符串的指针,该字符串包括每秒帧数、分辨率、后台缓冲区格式、深度缓冲区格式。
DXUTGetDeviceStats
获取一个指向字符串的指针,该字符串包括当前设备类型、顶点运算行为和设备名。
DXUT统计函数
函数
描述
DXUTGetFPS
获取当前每秒提交的帧数
DXUTGetFrameStats
获取一个指向字符串的指针,该字符串包括每秒帧数、分辨率、后台缓冲区格式、深度缓冲区格式。
DXUTGetDeviceStats
获取一个指向字符串的指针,该字符串包括当前设备类型、顶点运算行为和设备名。
下面列出允许改变DXUT行为和获取内部变量的函数,这些函数在使用DXUT框架的Direct3D程序中是非常实用的。
管理窗口的DXUT函数
函数
描述
DXUT框架与错误处理
Direct3D API的设计使程序能比较容易地处理各种错误,尽管大多数Direct3D API函数返回HTRSULT值,但只有一部分函数返回设备错误,如D3DERR_DEVICELOST或D3DERR_DRIVERINTERNALERROR。但是通常的Direct3D应用程序使用多种API函数,当传递的参数不合要求时,将返回D3DERR_INVALIDCALL。
(2)帧事件
框架也提供了帧事件,它在渲染过程中的每一帧被调用,应用程序应该注册并实现这些回调函数,如下表所示:
应用程序回调函数
注册回调函数
框架调用时机
场景渲染
在窗口和设备创建好之后,应用程序需要使用消息循环处理窗口消息、更新和渲染场景、处理设备事件。应用程序可以实现自己的消息循环,也可以使用DXUT消息循环,注册相应的回调函数,可以让DXUT处理设备、帧消息事件。
修改可用的设备
应用程序可以通过DXUTSetCallbackDeviceChanging()设置回调函数来修改Direct3D设备的创建设置:
创建一个设备
通常可以用标准的Direct3D方法CreateDevice()创建一个Direct3D设备,这个方法需要一个有效的显示适配器、设备类型(硬件抽象层设备或参考设备)、窗口句柄、运行标志(软件/硬件顶点运算模式和其他驱动标志)和提交参数。更重要的是,结构体D3DPRESENT_PARAMETERS有许多成员指定了后台缓冲区的设置、多重采样设置、交换效果、窗口模式、深度缓冲区设置、刷新频率、提交间隔和提交标志等。
DXUT框架用来帮助程序员花更少的时间来解决下列问题:创建窗口、创建Direct3D设备、进行消息循环和处理设备事件。在DXUT框架基础上编写代码,可以快速高效地进行Direct3D程序设计,大多数Direct3D SDK示例程序使用了DXUT框架。