Emptyproject分析

news/2024/7/3 0:22:37
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


http://lihuaxi.xjx100.cn/news/282055.html

相关文章

oracle9201怎么安装,Solaris10上安装64位Oracle9201

根据Oracle官方文档的步骤进行安装,首先是对Solaris10上系统需求的检查:# /usr/sbin/prtconf | grep "Memory size"Memory size: 16384 Megabytes# /usr/sbin/swap -lswapfile dev swaplo blocks free/dev/dsk/c1t0d0s1 118,9 16 36877808 368…

简单介绍python中的单向链表实现

大家好,本篇文章主要讲的是python中的单向链表实现,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下 一、单向链表概念 单向链表的链接方向是单向的,由结点构成,head指针指向第一个成为head结点,而…

图像配准的前世今生:从人工设计特征到深度学习

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达机器之心编译参与:Nurhachu Null,Geek AI作者:Emma Kamoun作为计算机视觉的重要研究课题,图像配准经历了从传统方法走向深度…

优秀博士学位论文精华版:基于深度学习的自然场景文字检测与识别方法研究...

本文选自《中国人工智能学会通讯》 2020年 第10卷 第2期 优秀博士学位论文精华版,CAAI会员中心编辑。该博士论文原作者石葆光2018年毕业于华中科技大学,师从于白翔老师,目前就职于微软雷德蒙德总部。摘 要本文基于深度学习框架,构…

入门必备 | 一文读懂神经架构搜索

作者 | Md Ashiqur Rahman编译 | 刘静转载自图灵TOPIA(ID: turingtopia)近期谷歌大脑团队发布了一项新研究:只靠神经网络架构搜索出的网络,不训练,不调参,就能直接执行任务。这样的网络叫做WANN&#xff0c…

计算机组成原理-输入输出系统(持续更新中)

I/O系统基本概念 基本概念 I/O硬件 现代计算机的结构 “I/O”就是"输入/输出" IO设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备。 常见的IO设备 主机如何与I/O设备进行交互? I/O接口:又称I/O控制器&…

c#直接调用ssis包实现Sql Server的数据导入功能

调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能。思前想后,决定还是贴一下增强记忆,高手请54.1、直接调用ssis包,需要引用Microsof…

Linux技术的成功之处

相信很多人在接触linux之前,都应该接触过windows系统,毕竟这个系统在中国而言,几乎是所有同学从小就接触到的一个系统,每当我们打开新买的电脑的时候,总会弹出熟悉的Windows界面。而今天在这里要说的是一个几乎能和win…