### OSG 3.4.0 MFC 测试构建详细说明
#### 一、新建 MFC 项目(选择 x64 平台)
为了确保能够正确地与 OpenSceneGraph (OSG) 3.4.0 的 x64 编译成果进行交互,首先需要在 Visual Studio 中创建一个新的 MFC (Microsoft Foundation Classes) 应用程序项目,并选择支持 x64 架构的编译配置。具体步骤如下:
1. **打开 Visual Studio**:启动 Visual Studio,选择“文件”>“新建”>“项目”。
2. **选择 MFC 类型**:在新项目的对话框中,选择“MFC 应用程序”模板。
3. **命名项目并选择位置**:为项目命名,例如命名为“osgTest”,并指定项目的位置。
4. **选择应用程序类型**:根据需要选择“基于对话框的应用程序”或“基于单一文档的应用程序”。
5. **设置架构类型**:在项目向导的最后一步中,选择“x64”作为目标架构。
#### 二、添加必要的库文件
在 MFC 项目中,为了能够调用和使用 OSG 的功能,需要将以下库文件添加到项目中:
- `OpenThreadsd.lib`
- `osgd.lib`
- `osgDBd.lib`
- `osgFXd.lib`
- `osgManipulatord.lib`
- `osgParticled.lib`
- `osgShadowd.lib`
- `osgSimd.lib`
- `osgTerraind.lib`
- `osgTextd.lib`
- `osgViewerd.lib`
- `osgUtild.lib`
- `osgGAd.lib`
这些库文件通常位于 OSG 安装目录的 `lib` 文件夹下。可以通过以下步骤添加这些库文件到项目中:
1. 在 Visual Studio 中打开“属性管理器”。
2. 选择项目的解决方案配置。
3. 转到“配置属性”>“链接器”>“常规”。
4. 在“附加库目录”中添加 OSG 的 `lib` 文件夹路径。
5. 转到“配置属性”>“链接器”>“输入”。
6. 在“附加依赖项”中添加上述库文件。
#### 三、添加必要的源文件和头文件
接下来,需要将 MFC_OSG.h 和 MFC_OSG.cpp 这两个文件从 OSG 安装目录下的 `examples\osgviewerMFC` 文件夹复制到 MFC 项目的源文件目录下,并确保在项目中正确引用它们。
1. **复制文件**:将 MFC_OSG.h 和 MFC_OSG.cpp 复制到项目的源文件目录下。
2. **添加头文件**:在项目的预编译头文件 `stdafx.h` 中添加 `#include <process.h>`。
3. **添加 MFC_OSG.h**:在 `osgTestView.h` 文件中添加 `#include "MFC_OSG.h"`。
4. **声明变量**:在 `osgTestView.h` 中添加以下变量声明:
```cpp
cOSG* mOSG;
CRenderingThread* mThreadHandle;
```
5. **属性视图操作**:在属性视图中单击消息按钮,在 WM_CREATE 添加 `OnCreate` 函数,并在“重写”按钮中重写 `OnInitialUpdate` 函数。
#### 四、初始化 OSG 并启动渲染线程
最后一步是在项目中实现初始化 OSG 以及启动渲染线程的功能。
1. **初始化 OSG**:在 `osgTestView.cpp` 的 `OnCreate` 函数中添加以下代码:
```cpp
mOSG = new cOSG(m_hWnd);
```
2. **加载场景**:在 `OnInitialUpdate` 函数中添加以下代码来初始化 OSG 场景:
```cpp
mOSG->InitOSG("cessna.osg");
```
3. **创建并启动渲染线程**:继续在 `OnInitialUpdate` 函数中添加以下代码以创建并启动渲染线程:
```cpp
mThreadHandle = new CRenderingThread(mOSG);
mThreadHandle->start();
```
通过以上步骤,可以成功地构建一个能够利用 MFC 对 OSG 编译成果进行测试的应用程序。这不仅有助于验证 OSG 库的功能,还为开发人员提供了一个强大的框架来扩展和定制他们的图形应用程序。