65.9K
CodeProject 正在变化。 阅读更多。
Home

CGLEnabledView - 支持 OpenGL 的 MDI 视图类

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.77/5 (24投票s)

1999年12月1日

2分钟阅读

viewsIcon

234332

downloadIcon

9577

提供 OpenGL 支持的插件视图类

  • 下载演示项目 - 82 KB
  • 下载源代码文件 - 15 Kb
  • Sample Image - glenabledview.gif

    它是什么

    CGEnabledView 是一个视图类,旨在封装所有 OpenGL 相关内容(初始化、管理渲染上下文和调色板、销毁等),从而允许在 MDI 应用程序中创建多个视图。

    CGEnabledView 还提供以下基本服务:

    • 一个函数,用于获取有关当前使用的 OpenGL 实现的各种信息(OPENGL 和 GLU 库的单独信息)。
    • 在内部管理显示列表的创建,并提供一个原始接口用于执行显示列表。
    • 定义要在视图内使用的鼠标光标。
    • 提供面向对象封装的四边形对象,用于绘制球体、圆柱体和圆盘。
    • 提供面向对象封装的 glu tessellator 例程,用于将非简单多边形(凹形、自相交和带孔的多边形)转换为简单的多边形组(三角形条和扇形)。
    • 提供一个简单的接口,用于将文本字符串绘制为 2D 位图或完整的 3D 字形。

    用途

    本文使用了配套文章 虚拟摇杆旋转控制器 中介绍的摇杆代码。

    要开始试验 OpenGL 绘图,只需执行以下步骤:

    1. 使用 AppWizard 生成一个 MDI 项目。
    2. [YourProject]View.cpp[YourProject]View.h 中用 CGLEnabledView 替换 CView。
    3. 使用 ClassWizard 删除 OnDrawPreCreateWindow 函数(也删除函数体)。
    4. 如果需要请求特定的颜色缓冲区深度、深度缓冲区深度和双缓冲模式组合,请重写 VideoMode 函数。
    5. 如果需要执行一些初始化,请重写 OnCreateGL
    6. 重写 OnDrawGL 函数并发出一些 GL 调用。
    7. 在构建项目之前,请记住链接 OpenGL 库(有关说明,请参阅 GLEnabledView.cpp 的顶部)。

    由于不建议混合 Windows GDI 和 OpenGL 绘图命令,因此一些 WM 处理程序被设为私有,请使用可重写的虚拟函数代替。
    其他详细信息在演示代码中(应该有很好的注释),可以用作良好的起点。

    演示

    在示例项目中,您可以打开多个视图,每个视图都呈现一个示例场景,并使用鼠标交互式地旋转它们。可以通过“帮助/查看 OGL 信息”菜单项获取有关 OpenGL 实现的一些信息。请查看“关于”对话框以获取一些快捷键。
    此演示项目演示了虚拟摇杆控制器的使用,该控制器允许您旋转场景,就像您正在操作叠加在应用程序子窗口上的虚拟球体一样。

    © . All rights reserved.