• DirectX9 Sample_Empty Project


    作为第一个程序,EmpytProject仅仅示范了如何绑定DXUTstate结构中的回调函数。

    回调函数

    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

    比如WinMain将得到的消息Msg作为参数调用回调函数MsgProc, MsgProc根据Msg的值作出相应的动作。

    使用DXUT框架可以简化Win32和DirectX的api调用。

    IsD3D9DeviceAcceptable Callback

      这个函数可以在创建D3D9设备前决定是否在应用程序中使用系统某个功能。比如不使用REF设备,程序是否全屏等。同时也负责检测设备是否可用。

    ModifyDeviceSettings Callback

      在DXUT创建D3D9设备之前改变任何设置。

    OnD3D9CreateDevice Callback

      D3D9设备创建后调用此回调函数,用于申请资源,设置缓存, 处理其他必需的任务。

    OnD3D9DestroyDevice Callback

      当D3D9设备接口被释放后立即调用此回调函数。用于释放设备所使用的资源。(vertex/index buffers, the layout, the textures以及the effect等)

    OnFrameMove Callback

      在进行每一帧渲染之前调用此回调函数。设置随时间变化的变量,如位置矩阵,摄像机,粒子等。

    OnD3D11FrameRender Callback

      用于渲染的回调函数。

    DXUT框架剖析(1)

    在应用程序运行期间,当Direct3D设备变为丢失状态时,DXUT框架会调用OnD3D9LostDevice()函数,释放所有在回调函数OnD3D9ResetDevice()中创建的设备资源。也就是说,这时释放的资源都是D3DPOOL_DEFAULT类型的。当Direct3D设备从丢失状态恢复时,DXUT框架会调用回调函数OnD3D9ResetDevice()重新创建所有类型为D3DPOOL_DEFAULT的资源。也就是说,在程序运行时,如果出现设备丢失现象,OnD3D9LostDevice()和OnD3D9ResetDevice()这一对函数就需要分别调用一次。

    在退出程序时,DXUT框架会依次调用OnD3D9LostDevice()和OnD3D9DestroyDevice()回调函数,在函数OnD3D9LostDevice()中释放由函数OnD3D9ResetDevice()创建的资源,在函数OnD3D9DestroyDevice()中释放由函数OnD3D9CreateDevice()创建的资源。

    本文引用了DirectX11中的相关介绍

  • 相关阅读:
    软件测试面试之剖析面试官
    DVWA之文件包含(File inclusion)
    DVWA之跨站请求伪造(CSRF)
    DVWA之命令注入(command injection)
    DVWA之Brute Force教程
    SQL注入中的整型注入实验
    模拟一次CSRF(跨站请求伪造)例子,适合新手
    安卓中Paint类和Canvas类的方法汇总
    C语言程序设计:现代方法(第2版)第三章全部习题答案
    C语言程序设计:现代方法(第2版)第二章全部习题答案
  • 原文地址:https://www.cnblogs.com/Agravity/p/4685685.html
Copyright © 2020-2023  润新知