http://book.51cto.com/art/201104/255588.htm

第1章  架好通向OpenGL的桥

本章主要是为以后进行的OpenGL编程进行一些铺垫工作。主要内容有:OpenGL组件包的安装、如何从VC++ 6.0下的OpenGL程序中提取有用的信息、glut库的设置。

1.1   由C++Builder 6.0 通向OpenGL(1)

事实上,大家所用的操作系统Windows XP、Windows 2000与开发环境C++Builder 6.0已经将这座桥架好。我们现在所要做的工作就是将桥面铺平,以便我们走得更舒服。我们这里所有的设置是以Windows XP操作系统为例进行说明。

简单介绍一个组件:TOpenGLB 6。这个组件是由Alan开发的,用于OpenGL编程时进行背景设置。现在可以免费使用这个组件(这里有个非常有趣的故事,大家可以阅读本章后面的内容)。读者可以从http://www.hellix.com/Alan/Computing/免费下载。

看过OpenGL方面书的读者都知道,所有的OpenGL程序都要设置一个背景,每次都要写:

  1. #include<gl/gl.h>
  2. #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标签添加效果

1.1 由C++Builder 6.0 通向OpenGL(1)的更多相关文章

  1. BCB6.0(Borland C++ Builder 6.0)下载位置(P2P)

    这个老东西还真不好找,搜索了一下,有一些所谓的精简版,绿色版,破解版,不靠谱. 公司有正版光盘,我装过,下面这两个应该是原版的: CD1: ed2k://|file|%5BBorland.C...Bu ...

  2. javafx:JavaFX Scene Builder 2.0打开含有第三方jar包的fxml文件报错 Caused by: java.lang.ClassNotFoundException

    报错如下: java.io.IOException: javafx.fxml.LoadException: /C:/User.................test.fxml at com.orac ...

  3. 报表工具Report Builder 3.0的安装

    工作后第一次尝试独立安装一个软件啊 话不多说,总结一下过程 前言:已经Baidu了Report Builder 3.0的安装教程了,就到微软的官网上下载去了,下载完成双击程序安装告诉我,要想安装Rep ...

  4. DSP Builder 12.0安装及crack方法

    在安装dsp_builder之前请确保已安装所需要的matlab版本 在此之前我已经安装了matlab R2011a,下面安装dsp builder 下面就是破解了,因为12.0的版本刚出,还没有相应 ...

  5. VC++6.0使用OpenGL前的配置(必看)

    要在VC++6.0中使用opengl,需要配置一下环境设置. 具体需要两步: 1.加入一个头文件,两个lib文件,两个dll文件,放在合适位置. 2.配置一下vc++6.0的Project Setti ...

  6. (BCB)C++ Builder 6.0在Win7下如何使用帮助Help

    因为Win7.Win8.Win8.1不再支持.hlp帮助类型,在BCB中无法打开帮助Help,打开时出错:"不包括功能"或"不受支持的帮助",提示如下: 为何无 ...

  7. 解决C++ builder 4.0编译后的程序在某些计算机上运行出现"EAccessViolation" 的错误

    1. bordbk41.dll is missing or not registered. regsvr32 "C:\Program Files (x86)\Common Files\Bor ...

  8. 基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之LayerColor(8)

    在前面文章中讲述了Cocos2d-x引擎OpenGL渲染准备Shader方面,本文主要讲解使用LayerColor来讲述OpenGL的渲染过程. 1.LayerColor对象创建 添加LayerCol ...

  9. 基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之Shader准备(7)

    Cocos2d-x底层图形绘制是使用OpenGL ES协议的.OpenGL ES是什么呢? OpenGL ES(OpenGl for Embedded System)是OpenGL三维图形API的子集 ...

随机推荐

  1. HTML介绍和head标签-01

    主要内容 web标准 浏览器介绍 开发工具介绍 HTML介绍 HTML颜色介绍 HTML规范 HTML结构详解 一.web标准 web准备介绍: w3c:万维网联盟组织,用来制定web标准的机构(组织 ...

  2. 图解java面试

    图解Java面试题:基本语法 2017-02-07 14:34 出处:清屏网 人气:178 评论(0)   内容大纲.png &和&&的区别 &和&&的 ...

  3. 《Cracking the Coding Interview》——第11章:排序和搜索——题目1

    2014-03-21 20:35 题目:给定已升序排列的数组A和数组B,如果A有足够的额外空间容纳A和B,请讲B数组合入到A中. 解法:由后往前进行归并. 代码: // 11.1 Given two ...

  4. Windows 2003 IIS服务器配置环境(放.net开发的网站)

    配置IIS 安装.Net Framework3.5 安装SQL数据库 IIS的配置与安装步骤: 开始->管理工具->管理您的服务器->添加角色->(配置您的服务器向导)下一步- ...

  5. 【APUE】Chapter7 Process Environment

    这一章内容是Process的基础准备篇章.这一章的内容都是基于C Programm为例子. (一)进程开始: kernel → C start-up rountine → main function ...

  6. 浅谈 css 之 position用法

    在 css中, position 属性有四个值可用: static(默认值).absolute.relative.fixed. relative:相对定位(相对于自身进行在常规流中的位置进行定位,保留 ...

  7. APP测试工程师面试题:之一

    第六题主要流程:编写计划 → 测试用例 → 评审用例 → 执行用例 → 写BUG →测修复情况 → 上线

  8. django-settings里mysql连接配置

    DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dailyfresh', 'HOST': 'loca ...

  9. react生命周期方法

    Mounting阶段,当一个组件的实例被创建并插入到DOM中时,下面这些函数会被调用: constructor() componentWillMount:组件即将被渲染到页面上,render之前最后一 ...

  10. 哈希UVALive 6326 Contest Hall Preparation

                              Encrypting passwords is one of the most important problems nowadays, and y ...