DXUT11框架浅析(2)--回调函数
来源:互联网 发布:用手机淘宝怎么改评价 编辑:程序博客网 时间:2024/05/17 01:09
DXUT11框架浅析(2)--回调函数
DXUT11框架提供了一系列回调函数,用于在框架内能调用开发者自定义代码,并对自定义代码作出判断。比如在扫描硬件设备时,需要让开发者判断设备是否满足程序运行的要求,在D3D device的创建和重置等状态变换时,开发者可以创建所需的各种D3D资源。这里所谓的回调函数即是框架定义的一系列函数指针,已经提供相应的注册函数,用以把开发者的自定义函数地址传入框架。
1. 通用Callback函数及其注册函数
即D3D9和D3D11共用的回调函数。
LPDXUTCALLBACKFRAMEMOVE / DXUTSetCallbackFrameMove
在渲染每一帧画面之前回调,在此可以对数据进行更新。比如计算物体运动等。
LPDXUTCALLBACKKEYBOARD / DXUTSetCallbackKeyboard
响应键盘输入,在此可根据不同的键盘输入做对应的控制。
LPDXUTCALLBACKMOUSE / DXUTSetCallbackMouse
响应鼠标输入,在此可对鼠标输入做对应控制。
LPDXUTCALLBACKMSGPROC / DXUTSetCallbackMsgProc
在收到Windows窗口消息时回调,在此可截取各种WM_*消息,并进行处理。
LPDXUTCALLBACKTIMER / DXUTSetTimer
设置时钟响应函数。
LPDXUTCALLBACKMODIFYDEVICESETTINGS / DXUTSetCallbackDeviceChanging
在创建D3D设备之前响应此回调。DXUT11已经为创建D3D设备而准备了默认设置,在此可以改变设置。
LPDXUTCALLBACKDEVICEREMOVED / DXUTSetCallbackDeviceRemoved
在设备被移除时回调。
2. D3D9 专用回调函数
LPDXUTCALLBACKISD3D9DEVICEACCEPTABLE
在创建D3D9设备之前响应此回调,用以检查此设备是否满足需要,即显卡性能是否能满足程序的需要。
LPDXUTCALLBACKD3D9DEVICECREATED
在创建D3D9设备之后响应此回调,用以创建内存池为D3DPOOL_MANAGED、D3DPOOL_SYSTEMMEM的各种类型的D3D资源;以及创建其他非资源类D3D对象,如创建shader、effect等。
LPDXUTCALLBACKD3D9DEVICERESET
在重置D3D9设备之后响应此回调,用以创建内存池为D3DPOOL_DEFAULT的各种类型的D3D资源。
LPDXUTCALLBACKD3D9FRAMERENDER
在D3D9渲染一帧写入BackBuffer时,显示该buffer内容之前回调。在此可以进行各种资源的绘制工作。
LPDXUTCALLBACKD3D9DEVICELOST
D3D9设备丢失时回调,所有在LPDXUTCALLBACKD3D9DEVICERESET中创建的内存池为D3DPOOL_DEFAULT的资源对象在这里都要释放掉。
LPDXUTCALLBACKD3D9DEVICEDESTROYED
在销毁D3D9设备时回调,在这里要释放掉在LPDXUTCALLBACKD3D9DEVICECREATED中创建的内存池为D3DPOOL_MANAGED、D3DPOOL_SYSTEMMEM的资源对象。
3. D3D11 专用回调函数
LPDXUTCALLBACKISD3D11DEVICEACCEPTABLE
在创建D3D11设备之前响应此回调,用以检查此设备是否满足需要,即显卡性能是否能满足程序的需要。
LPDXUTCALLBACKD3D11DEVICECREATED
在创建D3D11设备之后响应此回调。在此可以创建资源对象或shader、effect等对象。
LPDXUTCALLBACKD3D11SWAPCHAINRESIZED
在IDXGISwapChain::ResizeBuffers调用后回调,在此通知程序back buffer 的参数已经被修改。
LPDXUTCALLBACKD3D11FRAMERENDER
D3D11渲染一帧写入BackBuffer时,显示该buffer内容之前回调。在此可以进行各种资源的绘制工作。
LPDXUTCALLBACKD3D11SWAPCHAINRELEASING
旧的SwapChain被释放时回调。
LPDXUTCALLBACKD3D11DEVICEDESTROYED
在销毁D3D11设备时回调,在这里要释放掉各种对象。
- DXUT11框架浅析(2)--回调函数
- DXUT11框架浅析(0)--预览
- DXUT11框架浅析(8)--CGrowableArray
- DXUT11框架浅析(9)--DXUTDevice9
- DXUT11框架浅析(10)--DXUTDevice11
- DXUT11框架浅析(12)--CDXUTTimer
- 浅析 回调函数
- 回调函数浅析
- 浅析回调函数
- 浅析回调函数
- DXUT11框架浅析(1)--错误处理
- DXUT11框架浅析(4)--调试相关
- DXUT11框架浅析(5)--基础函数
- DXUT11框架浅析(6)--功能函数
- DXUT11框架浅析(7)--全局变量管理
- 浅析jQuery---回调函数
- DXUT11框架浅析(11)--枚举设备相关函数
- dwz框架---(2)表单回调函数
- arp总结
- CRC32
- ant参数详细说明
- Windows下搭建Eclipse+Android4.0开发环境
- 如何制作SCI论文中的Figures(一)
- DXUT11框架浅析(2)--回调函数
- 国内从事机器视觉领域的公司
- Java 实现程序运行状态监控 之我的思路(守护进程)
- 当ListView有Header时,onItemClick里的position不正确
- Ckeditor 在js 中的操作
- Linux grep 使用2
- Caused by: java.lang.ClassNotFoundException[android错误解决方案]
- 飞秋(FeiQ)2012版择日发布
- Delphi 常用日期与时间函数