OpenGL® on Silicon Graphics Systems

Document Number: 007-2392-003

Front Matter

| List of Figures | List of Examples | List of Tables |

Table of Contents

New Features in This Guide

About This Guide
Silicon Graphics Visualization Systems
What This Guide Contains
What You Should Know Before Reading This Guide
Background Reading
OpenGL and Associated Tools and Libraries
X Window System: Xlib, X Toolkit, and OSF/Motif
Other Sources
Obtaining Publications
Conventions Used in This Guide
Reader Comments

1. OpenGL on Silicon Graphics Systems
Using OpenGL with the X Window System
Extensions to OpenGL
Debugging and Performance Optimization
Location of Example Source Code (IRIX-Specific)

2. OpenGL and X: Getting Started
Background and Terminology
Libraries, Toolkits, and Tools
Integrating Your OpenGL Program With IRIS IM
Integrating OpenGL Programs With X—Summary
Compiling With OpenGL and Related Libraries

3. OpenGL and X: Examples
Using Widgets
Using Xlib
Using Fonts and Strings

4. OpenGL and X: Advanced Topics
Using Animations
Using Overlays
Using Visuals and Framebuffer Configurations
Using Colormaps
Stereo Rendering
Using Pixel Buffers
Using Pixmaps
Performance Considerations for X and OpenGL

5. Introduction to OpenGL Extensions
Determining Extension Availability
ARB_get_proc_address—The Dynamic Query-Function-Pointer Extension
Finding Information About Extensions

6. Resource Control Extensions
EXT_import_context—The Import Context Extension
SGI_make_current_read—The Make Current Read Extension
EXT_visual_info—The Visual Info Extension
EXT_visual_rating—The Visual Rating Extension
SGIX_fbconfig—The Framebuffer Configuration Extension
SGIX_pbuffer—The Pixel Buffer Extension

7. Vertex Processing Extensions
ARB_vertex_buffer_object—The Vertex Buffer Object Extension
ARB_window_pos—The Window-Space Raster Position Extension
EXT_clip_volume_hint—The Clip Volume Hint Extension
EXT_compiled_vertex_array—The Compiled Vertex Array Extension
EXT_fog_coord—The Fog Coordinate Extension
EXT_multi_draw_arrays—The Multiple Draw Arrays Extension
EXT_secondary_color—The Secondary Color Extension
The Vertex Array Object Extensions (Legacy)
The Texture Coordinate Generation Extensions (Legacy)

8. Texturing Extensions
ATI_texture_env_combine3—New Texture Combiner Operations Extension
ATI_texture_float—The Floating Point Texture Extension
ATI_texture_mirror_once—The Texture Mirroring Extension
EXT_texture_compression_s3tc—The S3 Compressed Texture Format Extension
EXT_texture_filter_anisotropic—The Anisotropic Texture Filtering Extension
EXT_texture_rectangle—The Rectangle Texture Extension
EXT_texture3D—The 3D Texture Extension
SGI_texture_color_table—The Texture Color Table Extension
SGIS_detail_texture—The Detail Texture Extension
SGIS_filter4_parameters—The Filter4 Parameters Extension
SGIS_point_line_texgen—The Point or Line Texture Generation Extension
SGIS_sharpen_texture—The Sharpen Texture Extension
SGIS_texture_edge/border_clamp—Texture Clamp Extensions
SGIS_texture_filter4—The Texture Filter4 Extensions
SGIS_texture_lod—The Texture LOD Extension
SGIS_texture_select—The Texture Select Extension
SGIX_clipmap—The Clipmap Extension
SGIX_texture_add_env—The Texture Environment Add Extension
SGIX_texture_lod_bias—The Texture LOD Bias Extension
SGIX_texture_scale_bias—The Texture Scale Bias Extension

9. Rendering Extensions
ATI_draw_buffers—The Multiple Draw Buffers Extension
ATI_separate_stencil—The Separate Stencil Extension
NV_point_sprite—The Point Sprite Extension
NV_occlusion_query—The Occlusion Query Extension
Blending Extensions
SGIS_fog_function—The Fog Function Extension
SGIS_fog_offset—The Fog Offset Extension
The Multisample Extension
The Point Parameters Extension
SGIX_reference_plane—The Reference Plane Extension
The Shadow Extensions
SGIX_sprite—The Sprite Extension

10. Imaging Extensions
Introduction to Imaging Extensions
EXT_abgr—The ABGR Extension
EXT_convolution—The Convolution Extension
EXT_histogram—The Histogram and Minmax Extensions
EXT_packed_pixels—The Packed Pixels Extension
SGI_color_matrix—The Color Matrix Extension
SGI_color_table—The Color Table Extension
SGIX_interlace—The Interlace Extension
SGIX_pixel_texture—The Pixel Texture Extension

11. Video Extensions
SGI_swap_control—The Swap Control Extension
SGI_video_sync—The Video Synchronization Extension
SGIX_swap_barrier—The Swap Barrier Extension
SGIX_swap_group—The Swap Group Extension
SGIX_video_resize—The Video Resize Extension

12. Miscellaneous OpenGL Extensions
GLU_EXT_NURBS_tessellator—The NURBS Tessellator Extension
GLU_EXT_object_space—The Object Space Tess Extension
SGIX_list_priority—The List Priority Extension
SGIX_instruments—The Instruments Extension

13. Vertex and Fragment Program Extensions
The Vertex and Fragment Program Extensions
Using Pipeline Programs
The Legacy Vertex and Fragment Program Extensions

14. OpenGL Tools
Platform Notes
ogldebug—The OpenGL Debugger
The OpenGL Character Renderer (GLC)
The OpenGL Stream Utility (GLS)
glxinfo—The glx Information Utility

15. Tuning Graphics Applications: Fundamentals
General Tips for Debugging Graphics Programs
Specific Problems and Troubleshooting
About Pipeline Tuning
Taking Timing Measurements
Tuning Animation

16. Tuning the Pipeline
CPU Tuning: Basics
CPU Tuning: Display Lists
CPU Tuning: Immediate Mode Drawing
Optimizing Cache and Memory Use
CPU Tuning: Advanced Techniques
Tuning the Geometry Subsystem
Tuning the Raster Subsystem
Tuning the Imaging Pipeline

17. Tuning Graphics Applications: Examples
Drawing Pixels Fast
Tuning Example

18. System-Specific Tuning
Introduction to System-Specific Tuning
Optimizing Performance on InfiniteReality Systems
Optimizing Performance on Onyx4 and Silicon Graphics Prism Systems

A. Benchmarks

B. Benchmarking Libraries: libpdb and libisfast
Libraries for Benchmarking
Using libpdb
Using libisfast

C. System Support for OpenGL Versions and Extensions
OpenGL Core Versions
OpenGL Extensions
GLX Extensions

D. XFree86 Configuration Specifics
Configuring a System for Stereo
Configuring a System for Full-Scene Antialiasing
Configuring a System for Dual-Channel Operation
Enabling Overlay Planes
Configuring a System for External Genlock or Framelock
Configuring Monitor Positions
Configuring Monitor Types
Configuring a System for Multiple X Servers