Emptyproject分析(SimpleSample)

1,InitApp()
WinMain中有一个InitApp(),在sample中存在,但是在emptyproject中没有,该函数是用于设定已经声明的一些一般变量的初始值的。比如某些按钮。
2,IsDeviceAcceptable()
被WinMain使用  DXUTCreateDevice( D3DADAPTER_DEFAULT, true, 640, 480, IsDeviceAcceptable, ModifyDeviceSettings );的方式调用。
主要用于判断显卡的功能是否符合程序所需,DXUTCreateDevice不断切换显卡性能的组合,针对每个组合(setting)进行IsDeviceAcceptable的测试,直到返回true。
3,ModifyDeviceSettings()
寻找显卡能够支持的功能。
4,OnCreatDevice()
对D3D相关的变量进行初始化,有字体,设备,阴影,模型,纹理等。
5,OnResetDevice()
做一些还原设定,主要是g_pFont,g_pEffect,g_pTexSprite,建立一个Camera,设定视窗右上角和右下角的设定(对话框)
继而进入DXUTMainLoop(),游戏循环,会不断调用OnFrameMove()和OnFrameRender()
6,OnFrameMove()
7,OnFrameRender()
在主循环中,每当需要重画一个新画面的时候,先进入Move来设置一些数值,比如Camera的位置,然后使用Render来进行渲染。
Render先清理buffer,使用Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_ARGB(0, 45, 50, 170), 1.0f, 0)来实现。
D3D中有三种BUFFER:
Color Buffer:用于呈现窗口上每个Pixel的color值,又称为Render Target,也就是最后着色目标的BUFFER。
Depth Buffer:又称Z Buffer,用来判断Pixel的前后顺序。
Stencil Buffer:规范Color Buffer的运作范围。

8,RenderText()
输出一些信息到3D画面上,用于处理显示在窗口上的字。
9,OnLostDevice()
程序会不断在OnFrameMove()与OnFrameRender()中反复执行,当切换成全屏的时候,会去调用OnLostDevice(),其实就是在reset之前来释放所需要reset的资源。
10,OnDestroyDevice()
如果不单修改了全屏设置,还修改了分辨率的话,那么流程会是:
OnLostDevice()->OnDestroyDevice()->OnCreateDevice->OnResetDevice.
也就是说,他Destroy在CreateDevice中Create的资源。
使用了SAFE_RELEASE,该宏会去check pointer是不是null。

转载于:https://www.cnblogs.com/housechen/archive/2009/12/17/1626076.html

Emptyproject分析相关推荐

  1. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  2. 2022-2028年中国自动驾驶系统行业现状调研分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国自动驾驶系统行业市场行业相关概述.中国自 ...

  3. 2022-2028年中国阻尼涂料市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻尼涂料行业市场行业相关概述.中国阻尼涂 ...

  4. 2021-2028年中国阻燃装饰行业市场需求与投资规划分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国阻燃装饰行业市场行业相关概述.中国阻燃装 ...

  5. 2022-2028年全球与中国漂白吸水棉市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国漂白吸水棉行业市场行业相关概述.全 ...

  6. 2022-2028年全球与中国青苔清洗剂市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国青苔清洗剂行业市场行业相关概述.全 ...

  7. 2022-2028年全球与中国氢碘化物市场智研瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国氢碘化物行业市场行业相关概述.全球 ...

  8. 2022-2028年全球与中国人字拖市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国人字拖行业市场行业相关概述.全球与 ...

  9. 2022-2028年全球与中国乳胶丝市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国乳胶丝行业市场行业相关概述.全球与 ...

最新文章

  1. python3 +改进HTMLTestRunner.py 测试报告显示
  2. 使用route-map 配置BGP本地优先级
  3. 13.2. Mount partition
  4. java的object_Java中的Object类详细介绍
  5. threadlocal内存泄露_ThreadLocal 简介
  6. Android5.0新特性-Material Design
  7. optee的error codes
  8. 计算机网络应用答题卡,2013-2014学年第2学期11级计算机网络技术毕业考试试卷
  9. 前端学习(2847):css鼠标样式
  10. 滤波器开发之四:基于算术平均的中值滤波器
  11. 腾讯2014年实习生招聘笔试面试经历
  12. 解决linux系统WIFI无法使用5GHz频率的问题
  13. python selenium 关闭窗口_Selenium快速上手实战 | 上篇
  14. 【LOJ】#2532. 「CQOI2018」社交网络
  15. 信息论基础 thomas 2nd ed
  16. MFC控件之cimagelist,加载不上位图
  17. Mat常用构造函数及IplImage 与Mat 之间的相互转换
  18. python办公自动化(十一)自动分类文件夹
  19. Flutter访问webservice
  20. 借助磁盘修理工具解决Boot Camp助理的分区问题

热门文章

  1. cmd库的导入Java,在cmd命令窗口导入第三方jar包来运行java文件
  2. linux下接口持续集成,部署jenkins持续集成工具
  3. linux命令face,linux下配置face_recognition
  4. 登高自卑 | 我的PyTorch入门与实践笔记
  5. 敏捷过程、极限编程和SCRUM的关系
  6. bootstrap-less源码分析:容器
  7. bats-Bash自动化测试工具
  8. 笔记之远程桌面服务(RDS)
  9. SAP QM 'QM System' 有什么控制作用?
  10. linux/nginx 安全增强