- STAFF PICKS
- GIFTS + GIFT CARDS
- SELL BOOKS
- FIND A STORE
New Trade Paper
Currently out of stock.
available for shipping or prepaid pickup only
Other titles in the OpenGL series:
OpenGL Programming for the X Window Systemby Mark J. Kilgard
Synopses & Reviews
OpenGL is the fastest and most widely available software standard for producing high-quality color images of 3D scenes. This practical guide shows X programmers how to construct working 3D applications using OpenGL and how to tightly integrate OpenGL applications with the X Window System.
Written by a Silicon Graphics X Window System and OpenGL expert, OpenGL Programming for the X Window System uses the OpenGL Utility Toolkit (GLUT) to show how OpenGL programs can be constructed quickly and explores OpenGL features using examples written with GLUT. This book also:
Each chapter contains source code demonstrating the techniques described. Source code for all the examples provided, and for the GLUT library itself, are available for downloading via the Internet.
Intended for C programmers familiar with the Xlib and/or Motif programming interfaces. No previous OpenGL knowledge is required.
Created by Silicon Graphics Inc., OpenGL has become the industry standard for the 3D graphics programming community. Sun and Hewlett Packard have recently joined OpenGL's list of licensees, bringing a large community of X Windows users to the OpenGL market. This text explains how the OpenGL libraries are implemented under X Windows, allowing programmers to take advantage of OpenGL.
About the Author
Mark Kilgard is a member of the Technical Staff at Silicon Graphics, Inc. He is a contributor to The X Journal and speaks regularly at the X Technical Conference and SIGGRAPH. Mark is also the creator of the OpenGL Utility Toolkit (GLUT).
Table of Contents
What is OpenGL?
History of OpenGL.
OpenGL's Rendering Functionality.
Pixel Path Operations.
Two Color Models.
OpenGL Modes and Other State.
Modeling and Viewing.
GLX: The Glue Between OpenGL and X.
A Quick Survey of GLX.
The GLX Protocol.
The GLU Library.
An Example Xlib-based OpenGL Program.
Compiling the Example.
Comparing OpenGL to PEX.
Subsets and Baselines.
Window System Dependency.
2. Integrating X and OpenGL.
A More Involved Xlib Example.
The Dinosaur Model.
OpenGL and X Visuals.
What Visuals GLX Guarantees to Exist.
glXChooseVisual and glXGetConfig.
More about Colormaps.
Managing Multiple Colormaps.
Initializing Writable Colormaps.
Using GLX Contexts.
Sharing Display Lists.
Binding to GLX Contexts.
Copying Context State.
Rendering X Fonts with OpenGL.
Rendering OpenGL into Pixmaps.
Generating Encapsulated PostScript.
Mixing X and OpenGL Rendering.
Finding OpenGL Errors.
X11 Protocol Errors.
Specialized OpenGL Debugging Tools.
3. Using OpenGL with Widgets.
About the X Toolkit and Motif.
Using OpenGL Drawing Area Widgets.
A Short OpenGL-specific Widget Example.
Specifics of the OpenGL Drawing Area Widgets.
The Motif and non-Motif OpenGL Widget Differences.
OpenGL Widgets and the Widget Class Hierarchy.
OpenGL Widget Resources.
OpenGL Widget Advice.
A More Involved Widget Example.
4. A Simple Toolkit for OpenGL.
A Short Example.
User Input and Other Callbacks.
More GLUT Functionality.
Controlling the Cursor Shape.
Color Index Mode.
Other Input Device Callbacks.
More Menu Management.
Geometric Shape Rendering.
Usage Advice and Hints.
Window Management Advice.
Current Window/Menu Management Advice.
A Substantial GLUT Example.
Establishing an Overlay for Rubber-banding.
Normal Plane and Overlay Rendering.
Spinning and Rubber-banding.
Suspending Animation and Pop-up Menus.
5. Exploring OpenGL with GLUT.
Exploring Lighting with GLUT.
The OpenGL Lighting Model.
Using OpenGL's Lighting Model.
Exploring OpenGL Texture Mapping with GLUT.
Using Textures with OpenGL.
Fun with Textures.
More on Texture Mapping.
Exploring Blending Operations with GLUT.
Uses for Blending.
Antialiasing through Blending.
Fog and Atmospheric Effects.
Exploring Images and Bitmaps with GLUT.
The Pixel Path.
Reading and Copying Pixels.
Texturing as the Merging of Geometry and Imagery.
Exploring Curves and Surfaces with GLUT.
Why Curves and Surfaces?
The GLU NURBS Routines.
Exploring the OpenGL Extensions with GLUT.
OpenGL Extension Naming.
Extensions as OpenGL's Future.
The Polygon Offset Extension.
Exploring Open Inventor with GLUT.
Procedural versus Descriptive.
Open Inventor in Brief.
Open Inventor with GLUT.
6. Advanced Topics.
Revisions to OpenGL, GLX, and GLU.
GLX 1.1 and GLX 1.2.
GLU 1.1 and GLU 1.2.
X Input Extension.
Querying the Extension.
Types of Extension Devices.
Querying Supported Devices.
Opening and Selecting Events from a Device.
Other X Input Extension Features.
An Xlib-based OpenGL Example.
X Toolkit Support for Extension Events.
Motif-based OpenGL Examples.
Utility of Overlays.
The Server Overlay Visuals Convention.
An SOV Programming Interface.
Listing Overlay Visuals: sovinfo.c.
An Xlib-only Overlay Example.
Vendor Support for Overlays.
Using Overlays with Motif Menus.
Portability and Interoperability.
Hardware for Accelerating OpenGL.
The Graphics Pipeline.
A Taxonomy for Graphics Hardware.
Hardware for OpenGL Stages.
Hardware for Window System Requirements.
Graphics Subsystem Bottlenecks.
Maximizing OpenGL Performance.
Reducing OpenGL Command Overhead.
Minimize OpenGL Mode Changes.
Improving Transformation Performance.
Improving Rasterization Performance.
Improving Imaging Performance.
Improving Texturing Performance.
Constructing Application-specific Benchmarks.
Beware of Standard Benchmarks.
7. An Example Application.
The Molecule Data Structure: molview.h.
Data File Reader: mol_file.c.
Virtual Trackball: trackball.c.
Molecule Renderer: render.c.
User Interface Initialization: gui_init.c.
User Interface Operation: gui_run.c.
Appendix A. Obtaining GLUT, Mesa, and the Book's OpenGL Example Code.
GLUT and the Book's Example Code.
Appendix B. Functional Description of the GLUT API
Beginning Event Processing.
Color Index Colormap Management.
Geometric Object Rendering.
Appendix C. GLUT State.
Types of State.
Program Controlled State.
Fixed System Dependent State.
Frame Buffer Capability State.
What Our Readers Are Saying
Other books you might like