距上一篇博文已经很久了,倒不是悠闲地过了两三星期,过去的这段时间都满课,而且我认为前面的章节没有看好看仔细,因此回去看了,把讲解过的源码都看了一次。好了,闲话不说了。
这篇博文标题是GameHost框架阅读,但实际上是结合了第六章中cMyHost的源码来阅读的。cGameHost对CD3DApplication类中的重要函数进行了重写,而cMyHost也对cGameHost的函数进行了重写。下面是第六章的主要函数执行过程,包括cMyHost和cGameHost。排版问题实在没法解决,只能用编号来解决了。
<1>CD3DApplication::Create
<1.1>cMyHost::OneTimeSceneInit <1.2>CD3DApplication::Initialize3DEnvironment
<1.1.1>cGameHost::OneTimeSceneInit <1.2.1>cMyHost::InitDeviceObjects <1.2.2>cMyHost::RestoreDeviceObjects
<1.1.1.1>displayManager.initialize <1.2.1.1>cGameHost::InitDeviceObjects <1.2.2.1>cGameHost::RestoreDeviceObjects
<1.1.1.1.1>cDisplayManager::registerDeviceResources <1.2.1.1.1>displayManager.createDeviceResources <1.2.2.1.1>displayManager.restoreDeviceResources
<2>CD3DApplication::Run
<2.1>CD3DApplication::MsgProc <2.2>CD3DApplication::Render3DEnvironment
<2.1.1>WM_PAINT,cGameHost::Render" <2.2.1>cGameHost::FrameMove
<2.1.1.1>cMyHost::renderScene <2.1.1.2>displayManager.processRenderQueue <2.2.1.1>cMyHost::updateScene <2.2.1.2>cGameHost::Render <2.2.1.3>CD3DApplication::UpdateStats
<2.1.1.1.1>quadTree.buildSearchResults <2.1.1.1.2>cSceneObject::render <2.2.1.1.1>cGameHost::updateScene