1.1 由C++ Builder 6.0 通向OpenGL
事实上,大家所用的操作系统Windows XP、Windows 2000与开发环境C++ Builder 6.0已经将这座桥架好。我们现在所要做的工作就是将桥面铺平,以便我们走得更舒服。我们这里所有的设置是以Windows XP操作系统为例进行说明。
简单介绍一个组件:TOpenGLB 6。这个组件是由Alan开发的,用于OpenGL编程时进行背景设置。现在可以免费使用这个组件(这里有个非常有趣的故事,大家可以阅读本章后面的内容)。读者可以从http://www.hellix.com/Alan/Computing/免费下载。
看过OpenGL方面书的读者都知道,所有的OpenGL程序都要设置一个背景,每次都要写:
#include<gl/gl.h> #include<gl/glu.h>
还要进行屏幕的颜色、大小、长宽比例、在窗口中的位置等方面的设置。而且在VC++中这些设置都需要特定的函数来实现。好了,现在我们可以把这项工作交给TOpenGLB 6组件去做,实现上面提到的效果只需用鼠标拖曳一下即可。
当然读者也可以使用其他功能更强大的组件包,但在网上找了一下并没有找到适用于C++ Builder 6.0的OpenGL方面的组件(用于C++ Builder 4.0、C++ Builder 5.0倒有不少)。当然,如果读者对C++ Builder 6.0和OpenGL都比较了解的话,可以自己开发最适合自己用的组件。
下面用TOpenGLB 6组件包来铺设 “桥面”。
考虑到一般人会将应用程序安装到D盘,以下均假定C++ Builder 6.0的安装目录为D:\Program Files\Borland\CBuilder 6。首先,将TOpenGLB 6(里面包含了OpenGL组件包的所有文件)文件夹放到CBuilder 6文件夹下。工作正式开始:
① 打开C++ Builder 6.0。在菜单栏选择“组件”→“安装包”命令,如图1-1所示。
图1-1 组件安装包略图
② 单击后,将看到如图1-2所示的界面,单击“添加”按钮。
图1-2 安装过程示意图
③ 如图1-3所示,这里的对话框让你来选择组件包文件。打开文件夹TOpenGLB 6,选择OpenGLPackage.bpl文件,单击“打开”按钮就可以了。
图1-3 选择安装包
然后会出现如图1-4所示的界面。大家观察一下我们前面所做工作的效果。在C++ Builder 6.0组件面板中,最后的位置多出了一个Helix标签。单击一下,你会发现它上面出现了一个OpenGL组件。而它就是我们所需要的,以后所有的程序就是用它来设置屏幕背景的。
图1-4 Helix标签添加效果
现在来试一下这个组件好不好用。单击 图标,然后在Form1中单击,Form1中就会出现一个黑色的矩形。用鼠标拖曳适当地调整矩形的大小(见图1-5),这就是以后要用的OpenGL作图的背景了。调试一下,不能运行,为什么呢?这是因为编译器找不到OpenGLSrc.h这样一个文件。可能有人会想到修改路径,不错,这样是可以的。但我们认为这并不是一个好方法,假设编译器是一个人的话,他愿不愿意每次工作之前先跑两个地方向“领导”(*.h,这里的h实际上是head)报告一下,然后再开始工作呢?下面我们要做的工作是为编译器提供一些方便,说白了就是让“领导们”都呆在一个地方等编译器来报告。但问题是让“领导们”待在哪里呢?
图1-5 Form1设置效果
④ 将OpenGLSrc.h复制到D:\Program Files\Borland\CBuilder6\Include文件夹下,如图1-6所示。另外别的“领导”(*.h)都在这里“办公”,估计“新领导”OpenGLSrc.h也会喜欢待在这里。
图1-6 head“办公室”
另外,基于为编译器提供方便的理念,还需要让“秘书们”换一下地方。原则:到它们应该到的地方(什么意思呢?意思就是说让新秘书到秘书办公室工作)。
⑤ 将OpenGLPackage.bpl文件复制到D:\Program Files\Borland\CBuilder6\Bin文件夹下,如图1-7、图1-8所示。同样的方法,将OpenGLPackage.lib、OpenGLPackage.bpi文件复制到D:\Program Files\Borland\CBuilder6\Lib文件夹下(注意:这个文件夹好像是*.lib文件的“办公室”啊!原来大家都在这里!)。
图1-7 复制
图1-8 粘贴
好了,所有的设置都完成了。现在可以试一下我们的工作成果了。回到如图1-5所示的界面,先单击一下Form1中的黑色区域,然后在左下角的“对象检视器”中,选择“事件”选项卡,找到“OnGLPaint”选项,在竖线的右侧双击,则会出现如图1-9所示的画面。
图1-9 “对象检视器”设置
添加以下代码:
glLineWidth(20); glColor3f(1,0,0); glBegin(GL_LINE_STRIP); glVertex2f(-0.8,1); glVertex2f(0, -1); glVertex2f(0.8,1); glEnd();
调试运行,将出现如图1-10所示的画面。在这里我们用最简单的OpenGL代码,为第一阶段的工作写下一个大大的“V”字。
图1-10 绘图效果
注意
本节内容主是涉及TOpenGLB 6组件包的安装。之所以如此详细介绍,一方面是因为这是后面所有内容的基础,若此处设置不成功,后面的所有内容就没有任何价值;另一方面,熟悉了本节内容,有利于大家来安装其他C++ Builder 6.0的组件。