Gift Guide

OpenGL Programming for the X Window System

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 96%)
Other sellers (Paperback)
  • All (19) from $1.99   
  • New (7) from $24.91   
  • Used (12) from $1.99   


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:

  • explains the GLX model for integrating OpenGL and Xlib
  • shows how to use OpenGL with Motif and other widget sets
  • discusses the latest OpenGL standards: OpenGL 1.1, GLX 1.2, and GLU 1.2
  • covers advanced topics such as alternative input devices and overlays
  • includes valuable information for ensuring OpenGL portability and interoperability
  • provides pointers for performance tuning

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.


Read More Show Less

Product Details

  • ISBN-13: 9780201483598
  • Publisher: Addison-Wesley
  • Publication date: 8/2/1996
  • Series: OpenGL Series
  • Edition description: New Edition
  • Pages: 542
  • Product dimensions: 7.40 (w) x 9.00 (h) x 1.30 (d)

Meet 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).


Read More Show Less

Table of Contents



1. Introduction.

What is OpenGL?

OpenGL's Design.

History of OpenGL.

OpenGL's Rendering Functionality.

Geometric Primitives.

Pixel Path Operations.

Two Color Models.

OpenGL Modes and Other State.

Ancillary Buffers.

Modeling and Viewing.

Further Capabilities.

GLX: The Glue Between OpenGL and X.

A Quick Survey of GLX.

The GLX Protocol.

The GLU Library.

An Example Xlib-based OpenGL Program.


Example: glxsimple.c.

Scene Update.

Compiling the Example.

Comparing OpenGL to PEX.

Subsets and Baselines.

Programming Interfaces.

Rendering Functionality.

Display Lists.


Window System Dependency.

2. Integrating X and OpenGL.

A More Involved Xlib Example.


The Dinosaur Model.


View Selection.

Event Dispatching.

OpenGL and X Visuals.

What Visuals GLX Guarantees to Exist.

Example: glxvisuals.c.

glXChooseVisual and glXGetConfig.

More about Colormaps.

Colormap Sharing.

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.

Debugging Tips.

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.

Introducing GLUT.

A Short Example.

User Input and Other Callbacks.


More GLUT Functionality.


Window Management.

Controlling the Cursor Shape.

Color Index Mode.

Other Input Device Callbacks.

State Retrieval.

More Menu Management.

Font Rendering.

Geometric Shape Rendering.

Overlay Support.

Usage Advice and Hints.

Callback Advice.

Window Management Advice.

Current Window/Menu Management Advice.

Miscellaneous 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.

Example: lightlab.c.

Exploring OpenGL Texture Mapping with GLUT.

Using Textures with OpenGL.

Fun with Textures.

More on Texture Mapping.

Example: mjkwarp.c.

Exploring Blending Operations with GLUT.

Uses for Blending.

Antialiasing through Blending.

Fog and Atmospheric Effects.


Example: blender.c.

Exploring Images and Bitmaps with GLUT.

The Pixel Path.


Reading and Copying Pixels.

Texturing as the Merging of Geometry and Imagery.

Example: splatlogo.c.

Exploring Curves and Surfaces with GLUT.

Why Curves and Surfaces?


The GLU NURBS Routines.

More Information.

Example: molehill.c.

Exploring the OpenGL Extensions with GLUT.

OpenGL Extension Naming.

Available Extensions.

Extension Interoperability.

GLX Extensions.

Extensions as OpenGL's Future.

The Polygon Offset Extension.

Example: origami.c.

Exploring Open Inventor with GLUT.

Procedural versus Descriptive.

Open Inventor in Brief.

Open Inventor with GLUT.

Example: glutduck.c++.

6. Advanced Topics.

Revisions to OpenGL, GLX, and GLU.

OpenGL 1.1.

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.

Sample 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.

Using Overlays.

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.

Usage Considerations.

Using Overlays with Motif Menus.

Portability and Interoperability.

Portability Issues.

Interoperability Issues.

Hardware for Accelerating OpenGL.

The Graphics Pipeline.

A Taxonomy for Graphics Hardware.

Rendering Paths.

Hardware for OpenGL Stages.

Display Options.


Transforming Geometry.

Hardware for Window System Requirements.

Graphics Subsystem Bottlenecks.

Maximizing OpenGL Performance.

Pipeline-based Tuning.

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.

Running molview.

The Molecule Data Structure: molview.h.

Data File Reader: mol_file.c.

Virtual Trackball: trackball.c.

Molecule Renderer: render.c.

Picking: pick.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.

Obtaining Mesa.

Appendix B. Functional Description of the GLUT API


Beginning Event Processing.

Window Management.

Overlay Management.

Menu Management.

Callback Registration.

Color Index Colormap Management.

State Retrieval.

Font Rendering.

Geometric Object Rendering.

Appendix C. GLUT State.

Types of State.

Global State.

Program Controlled State.

Fixed System Dependent State.

Window State.

Basic State.

Frame Buffer Capability State.

Layer State.

Menu State.



Index. 0201483599T04062001

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)