C++.NET OpenGL 应用程序生成器

在这篇文章中,将探讨如何使用C++.NET和Visual Studio创建一个OpenGL应用程序。这个过程涉及到使用应用程序生成器,它可以帮助快速搭建一个基本的OpenGL应用程序框架。

首先,需要将OGLWiz.awx和Oglwiz.hlp文件复制到自定义应用程序向导目录(通常是"C:\Program Files\MicrosoftVisual Studio\Common\MSDev98\Template")。

使用此应用程序生成器生成的项目包含两个类:

  • CApp
  • CMainWnd

存在一个全局实例CApp(gApp),它拥有一个CMainWnd实例(m_pMainWnd)。CApp负责创建主窗口,初始化OpenGL,维护消息泵和管理屏幕更新。CMainWnd封装了主窗口及其OpenGL渲染上下文。

CApp通过调用CMainWnd::InitScene()、CMainWnd::KillScene()和CMainWnd::DrawScene()来通知CMainWndOpenGLRC生命周期的不同阶段。CMainWnd::Tick()由CApp调用,每次窗口消息队列为空时都会调用。

这可能不是最优雅的面向对象解决方案;CApp中的一些代码实际上应该在CMainWnd中,比如窗口创建和(部分)消息处理。但目的是让CApp处理Win32API和OpenGL设置的繁琐工作,让CMainWnd专注于客户区域显示的内容。

使用向导

选择创建新项目,从项目类型列表中选择"OpenGLWin32应用程序",输入项目名称并按OK。以下是可用于自定义项目的选项:

  • 应用程序菜单:勾选此框以向主窗口添加菜单。
  • 键盘加速器:添加键盘加速器资源并处理加速键。
  • 关于框:创建关于对话框和对话框回调例程。如果可用,还会向菜单添加关于命令。
  • 主窗口:选择主窗口的外观。
  • 窗口:创建具有默认大小的重叠主窗口。
  • 全屏:创建一个占据整个屏幕的顶级弹出窗口。
  • 两者:外观由开关确定:如果未定义FULLSCREEN,则应用程序在窗口中运行。
  • 在标题中显示FPS:添加代码以定期显示每秒帧数。(在全屏模式下不可用)

OpenGL支持

  • 使用OpenGL:添加代码以初始化和维护OpenGL RC。如果未选中此框,则创建一个普通的Win32应用程序。
  • 示例代码:添加代码以渲染一个简单的OpenGL场景(旋转立方体)。
  • 双缓冲:创建一个双缓冲像素缓冲区。
  • 颜色深度:每个颜色缓冲区的颜色位平面数。
  • Z缓冲区深度:Z缓冲区的位深度。
  • 背景颜色:按按钮选择主窗口的背景颜色。

VC++.NET应用程序生成器的注意事项

在VC++.NET中,应用程序生成器不再是编译的插件,而是一系列脚本和模板文件,具有基于HTML的用户界面。请参阅Readme.txt了解安装说明。

利用这个机会改变了对象模型,使之更加清晰。现在有一个抽象基类CApp,负责窗口创建、OpenGL初始化等。生成的应用程序的"核心"位于一个派生类中,该类覆盖了CApp的多个虚函数。例如,InitScene()、DrawScene()和KillScene()是虚函数。

除此之外,VC++.NET版本的应用程序生成器基本上与VC++6版本的行为相同。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485