第十章 Project Setup and Window Initialization
本章主要讲述建立一个渲染引擎所需要的基础知识。包括创建一个Visual Studio工程,实现游戏循环,并最终在显示器上显示一个窗口。
A New Beginning
本章正式开始讲解C++编程(本书中使用C++集中讲解DirectX API的章节),重要的是,不要期望能迅速学会渲染一些场景到屏幕上。简单地说,要学会这些需要一段时间。首先需要花时间建立一些基础框架,在多个工程中重用代码的时候就会体现出这么做的好处。如果你更喜欢使用本书配套网站中的现有代码,并跳过部分章节直接开始实际的渲染工作,也可以。但是,如果你对基础系统框架是如何开发的感兴趣,你就会觉得接下来几章的内容非常有用。
另外,学习这些章节的内容需要你已经熟悉C++编程和Visual Studio的使用,但并不需要熟练编写Windows应用程序。因此,一开始会讲解工程的设置,这样在后面的章节中你就能自己完成工程的设置。
Projet Setup
接下来几章要开发的渲染引擎分为两个Visual Studio工程,包括一个Library工程和一个Game工程。其中Library工程包含了用于任意数量的游戏或者渲染应用程序的常用代码。而Game工程则是包含了特定应用程序的代码。
Directory Structure
给所有的工程建立一个目录结构是一个好的建议。表10.1中列出了本书配套代码的目录结构。
表10.1 Project Directory Structure
Project Creation
要使用这种目录结构,先在build目录里面创建一个空的Visual Studio solution(Visual Studio解决方案)。然后在Solution Explorer anel中右键点击该solution,并在弹出菜单上选择Add-->New Project,会启动Add New Project Wizard(新建工程向导)。
如图10.1所示,选择Win32 Project模板,并填写工程的namt和location选项。
图10.1 The Visual Studio 2013 Add New Project Wizard. 选择OK就会启动Win32 Application Wizard(Win32应用程序设置向导)。对于Library工程,application type项选择Static Library,additional options中选择Empty Project(如图10.2所示)。在图10.2所示的设置中,precompiled headers被禁用了;如果你要用使用precompiled headers(用于提高编译速度),只需要勾选该选项。
图10.2 The Visual Studio 2013 Win32 Application Wizard.
再次执行同样的步骤创建一个Game project,但是在application type中选择Windows Applicaiton项。
Project Build Order
接下来,设置正确的编译顺序,在Solution Explorer panel中右键点击solution或者其中一个project,并在弹出菜单中选择Project Dependencies。应该把Library project设置为Game project的依赖项,这样配置就可以在编译Game project之前先编译Library project(如图10.3所示)。