DXUT11框架浅析(2)--回调函数




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设备时回调,在这里要释放掉各种对象。

 

 



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值