第1部分 Linux程序开发基础知识 1
第1章 认识Linux 1
1.1 Linux是自由的操作系统 1
1.2 Linux和自由软件 2
1.3 Linux的发展简史 4
1.4 Linux在中国 6
1.5 总结 9
第2章 Linux系统C语言开发支撑工具 10
2.1 支撑工具简介 10
2.2 C语言编译器——gcc 11
2.2.1 gcc简介 11
2.2.2 gcc的执行过程 11
2.2.3 gcc的基本用法和选项 11
2.2.4 gcc的错误类型及对策 13
2.3 程序维护工具——make 14
2.3.1 make简介 14
2.3.2 基本原理和用法 14
2.3.3 宏(marco)和注释 16
2.4 程序调试工具 18
2.4.1 调试工具简介 18
2.4.2 调试使用场合 18
2.4.3 调试的功能 18
2.4.4 调试对编译的要求 19
2.4.5 gdb的常用命令 19
2.4.6 xxgdb介绍 23
2.5 程序版本维护 24
2.5.1 RCS简介 24
2.5.2 程序版本结构 24
2.5.3 RCS使用 24
2.6 总结 25
第3章 熟悉程序开发环境 26
3.1 程序开发流程 26
3.2 程序的编辑之一——使用vi 27
3.2.1 vi简介 27
3.2.2 快速掌握vi 27
3.2.3 vi的使用 27
3.2.4 进一步学习vi 29
3.3 程序的编辑之二——使用EMACS 29
3.3.1 Emacs简介 29
3.3.2 快速掌握Emacs 30
3.3.3 Emacs使用 30
3.3.4 Emacs的程序开发功能 33
3.3.5 使用Emacs编辑程序实例 34
3.4 程序的编译和调试 35
3.4.1 人工编译连接 35
3.4.2 使用make编译连接 35
3.4.3 在Emacs中编译程序 36
3.4.4 调试 37
3.5 获取帮助之一——联机帮助获取 39
3.5.1 联机帮助手册 39
3.5.2 系统帮助文档 42
3.5.3 Motif帮助获取 43
3.6 获取帮助之二——网络帮助获取 44
3.6.1 LDP文档 44
3.6.2 BBS(中文) 45
3.6.3 USENET新闻组 45
3.6.4 小结 46
3.7 总结 46
第2部分 Motif程序开发技术 48
第4章 X-Window与Motif入门 48
4.1 图形用户界面 48
4.1.1 图形用户界面的特征 48
4.1.2 图形用户界面的结构 49
4.1.3 Linux的图形用户界面 49
4.2 X-Window系统 51
4.2.1 X-Window简介 51
4.2.2 X-Window发展历史 51
4.2.3 X系统的特征 51
4.2.4 X系统基本概念 52
4.3 Motif介绍 54
4.3.1 Motif简介 54
4.3.2 Motif的组成 54
4.3.3 窗口管理 55
4.4 Motif程序开发基础 56
4.4.1 Motif程序开发简介 57
4.4.2 Motif程序开发接口 57
4.4.4 Widgets组件构成 59
4.4.5 基本原则 61
4.5 UIL基础 61
4.5.1 UIL与MRM 61
4.5.2 UIL的特征 62
4.6 总结 62
第5章 Motif程序开发基础 64
5.1 开始Motif程序开发 64
5.1.1 第一个实例 64
5.1.2 程序分析 69
5.1.3 Motif程序的结构 76
5.2 Motif的资源 77
5.2.1 Motif资源简介 77
5.2.2 Motif资源的控制方式 77
5.2.3 Motif资源文件 77
5.2.4 Motif资源的使用 79
5.3 Motif的组件 80
5.3.1 主窗口和菜单系统 81
5.3.2 对话框 88
5.3.3 标签和按钮 94
5.3.4 其他组件 98
5.3.5 小结 99
5.4 Motif的事件处理 99
5.4.1 事件类型与处理方式 99
5.4.2 回调函数 101
5.4.3 动作函数 104
5.4.4 小结 110
5.5 X系统的字体 110
5.5.1 复合字符串 111
5.5.2 字体 112
5.5.3 字体处理实例 113
5.6 总结 114
5.6.1 Motif程序的结构 114
5.6.2 资源及管理 115
5.6.3 组件对象 115
5.6.4 事件 116
5.6.5 字体和复合字符串 117
5.6.6 实例 117
第6章 UIL开发基础 118
6.1 UIL简介 118
6.2 UIL语言基础 119
6.2.1 字符集 119
6.2.2 名字 119
6.2.3 关键字 120
6.2.4 数据类型 121
6.2.5 表达式 122
6.2.6 取值函数 122
6.3 UIL模块 123
6.3.1 UIL模块内容 124
6.3.2 UIL模块结构 124
6.3.3 UIL模块书写规则 133
6.4 使用UIL的Motif程序实例 134
6.4.1 程序的功能 135
6.4.2 程序的组成 135
6.4.3 编译连接过程 138
6.5 使用UIL的C程序结构 140
6.5.1 初始化Mrm 140
6.5.2 建立组件对象 140
6.6 使用UIL进行资源管理 144
6.6.1 颜色与字体管理 144
6.6.2 像图管理 147
6.7 总结 152
第3部分 OpenGL程序开发技术 154
第7章 OpenGL概述 154
7.1 OpenGL的发展历程 154
7.2 OpenGL特点及功能 155
7.2.1 OpenGL基本功能 155
7.2.2 OpenGL1.2的部分特性 156
7.3 Mesa简介 157
7.4 OpenGL函数库 158
7.4.1 gl核心函数库 158
7.4.2 glu实用库 160
7.4.3 glaux辅助库 160
7.4.4 gltk工具库及与glaux库的比较 161
7.4.5 其他扩展函数库 165
7.5 OpenGL的语法规则及状态机制 165
7.5.1 语法规则 165
7.5.2 状态机制 166
7.6 OpenGL的相关信息 167
7.6.1 OpenGL技术评审委员会 167
7.6.2 Linux下OpenGL的网址 167
7.6.3 使用或支持OpenGL的一些相关产品 167
7.7 总结 172
第8章 Mesa/OpenGL编程要点 173
8.1 一个简单Mesa程序示例 173
8.1.1 迷宫程序代码 173
8.1.2 程序分析 178
8.1.3 Linux及Windows系统下Mesa/OpenGL程序框架的比较 179
8.2 图形绘制的辅助技术 180
8.2.1 清除缓冲区 180
8.2.2 消隐 181
8.2.3 强制绘图完成 182
8.2.4 交换缓冲区 183
8.3 总结 184
第9章 绘制几何实体 185
9.1 基本几何图元 185
9.1.1 绘制开始与结束命令 185
9.1.2 点 186
9.1.3 线 193
9.1.4 多边形 200
9.1.5 法向量 211
9.2 颜色 212
9.2.1 颜色模式 212
9.2.2 颜色过渡模式 218
9.3 变换 225
9.3.1 模型—取景变换 226
9.3.2 投影变换 228
9..3.3 视口变换 230
9.3.4 附加裁剪平面 231
9.3.5 矩阵堆栈 232
9.3.6 程序示例 233
9.4 总结 245
第10章 显示列表 246
10.1 立即执行模式与显示列表 246
10.1.1 立即执行模式 246
10.1.2 显示列表方式 247
10.2 显示列表的创建与执行 247
10.2.1 创建显示列表 247
10.2.2 执行显示列表 248
10.2.3 显示列表嵌套 249
10.3 程序示例 249
10.4 总结 259
第11章 光照、材质与纹理 260
11.1 光照处理 260
11.1.1 光照基本概念 260
11.1.2 光源属性 261
11.1.3 光照模式 265
11.1.4 程序示例 267
11.2 材质 275
11.2.1 材质属性 275
11.2.2 材质程序示例一 277
11.2.3 材质程序示例二 285
11.3 纹理映射 296
11.3.1 纹理基本概念 296
11.3.2 纹理的定义 296
11.3.3 纹理坐标 301
11.3.4 程序示例 302
11.3.5 纹理缠绕方式 311
11.3.6 本章程序综合示例 312
11.4 总结 319
第12章 雾化、融合与反走样 320
12.1 雾化 320
12.1.1 雾化效果设置 320
12.1.2 程序示例 321
12.2 融合 329
12.2.1 融合效果设置 329
12.2.2 程序示例一 330
12.2.3 程序示例二 336
12.3 反走样 345
12.3.1 反走样效果设置 345
12.3.2 程序示例 345
12.4 总结 352
第13章 位图与图像 353
13.1 位图 353
13.1.1 位图绘制函数 353
13.1.2 位图程序示例 353
13.1.3 字体程序示例 361
13.2 图像 369
13.2.1 像素的读写、拷贝、缩放操作 370
13.2.2 像素的存贮、传输、映射操作 371
13.2.3 程序示例 374
13.3 总结 382
第14章 求值器与NURBS 384
14.1 求值器 384
14.1.1 求值器的计算原理 384
14.1.2 求值器函数 384
14.1.3 程序示例 386
14.2 NURBS 395
14.2.1 NURBS编程思路 395
14.2.2 NURBS函数 395
14.2.3 程序示例 396
14.3 总结 402
第4部分 综合使用Motif与OpenGL 403
第15章 Motif与OpenGL联合编程 403
15.1 Motif与OpenGL联合编程 403
15.2 实例介绍 404
15.2.1 程序功能与运行结果 404
15.2.2 程序源代码 405
15.2.3 编译连接 411
15.3 实例程序剖析 412
15.3.1 组件对象层次结构 412
15.3.2 便利函数与回调函数 413
15.3.3 OpenGL处理 413
15.4 总结 413
附录A GPL声明 414
附录B Xt和Motif组件类族 427
附录C X系统设计7原则 428
附录D 通用包含头文件 429
参考文献 431