Opengl® on Silicon Graphics® Systems
Total Page:16
File Type:pdf, Size:1020Kb
OpenGL® on Silicon Graphics® Systems About This Guide 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 Conventions Used in This Guide Typographical Conventions Function Naming Conventions Changes in this Version of the Manual Chapter 1 OpenGL on Silicon Graphics Systems Using OpenGL With the X Window System GLX Extension to the X Window System Libraries, Tools, Toolkits, and Widget Sets Note to IRIS GL Users Extensions to OpenGL Debugging and Performance Optimization Debugging Your Program Tuning Your OpenGL Application Maximizing Performance With IRIS Performer Location of Example Source Code Chapter 2 OpenGL and X: Getting Started Background and Terminology X Window System on Silicon Graphics Systems X Window System Concepts Libraries, Toolkits, and Tools Widgets and the Xt Library Other Toolkits and Tools Integrating Your OpenGL Program With IRIS IM Simple Motif Example Program Looking at the Example Program Integrating OpenGL Programs With XSummary Compiling With OpenGL and Related Libraries Link Lines for Individual Libraries Link Lines for Groups of Libraries Chapter 3 OpenGL and X: Examples Using Widgets About OpenGL Drawing−Area Widgets Drawing−Area Widget Setup and Creation Input Handling With Widgets and Xt Creating Colormaps Widget Troubleshooting Using Xlib Simple Xlib Example Program Creating a Colormap and a Window Xlib Event Handling Using Fonts and Strings Chapter 4 OpenGL and X: Advanced Topics Using Animations Swapping Buffers Controlling an Animation With Workprocs Controlling an Animation With Timeouts Using Overlays Introduction to Overlays Creating Overlays Overlay Troubleshooting Rubber Banding Using Popup Menus With the GLwMDrawingArea Widget Using Visuals Some Background on Visuals Running OpenGL Applications Using a Single Visual Using Colormaps Background Information About Colormaps Choosing Which Colormap to Use Colormap Example Stereo Rendering Stereo Rendering Background Information Stereo Rendering Using Pixmaps Creating and Using Pixmaps Direct and Indirect Rendering Performance Considerations for X and OpenGL Portability Chapter 5 Introduction to OpenGL Extensions Determining Extension Availability How to Check for OpenGL Extension Availability Example Program: Checking for Extension Availability Checking for GLX Extension Availability Finding Information About Extensions Reference Pages Example Programs Extension Specifications Chapter 6 Resource Control Extensions EXT_import_contextThe Import Context Extension Importing a Context Retrieving Display and Context Information New Functions EXT_make_current_readThe Make Current Read Extension Read and Write Drawables Possible Match Errors Retrieving the Current Drawable’s Name New Functions EXT_visual_infoThe Visual Info Extension Using the Visual Info Extension Using Transparent Pixels EXT_visual_ratingThe Visual Rating Extension Using the Visual Rating Extension SGIX_dm_pbufferThe Digital Media Pbuffer Extension Creating a Digital Media Pbuffer Compatibility Conditions OpenGL Rendering to DMbuffers DMbuffers as OpenGL Textures New Function SGIX_fbconfigThe Framebuffer Configuration Extension Why Use the Framebuffer Configuration Extension? GLXFBConfigSGIX Constructs How an FBConfig Is Selected New Functions SGIX_pbufferThe Pixel Buffer Extension About GLXPbuffers Creating a PBuffer Rendering to a GLXPbuffer Directing the Buffer Clobber Event New Functions Chapter 7 Texturing Extensions EXT_texture3DThe 3D Texture Extension Why Use the 3D Texture Extension? Using 3D Textures 3D Texture Example Program New Functions SGI_texture_color_tableThe Texture Color Table Extension Why Use a Texture Color Table? Using Texture Color Tables Texture Color Table and Internal Formats Using Texture Color Table On Different Platforms SGIS_detail_textureThe Detail Texture Extension Using the Detail Texture Extension Detail Texture Example Program New Functions SGIS_filter4_parametersThe Filter4 Parameters Extension Using the Filter4 Parameters Extension SGIS_point_line_texgenThe Point or Line Texture Generation Extension Why Use Point or Line Texture Generation SGIS_sharpen_textureThe Sharpen Texture Extension About the Sharpen Texture Extension Sharpen Texture Example Program New Functions SGIS_texture4DThe 4D Texture Extension SGIS_texture_edge/border_clampTexture Clamp Extensions Texture Clamping Background Information Why Use the Texture Clamp Extensions? Using the Texture Clamp Extensions SGIS_texture_filter4The Texture Filter4 Extensions Using the Texture Filter4 Extension New Functions SGIS_texture_lodThe Texture LOD Extension Specifying a Minimum or Maximum Level of Detail Specifying Image Array Availability SGIS_texture_selectThe Texture Select Extension Why Use the Texture Select Extension? Using the Texture Select Extension SGIX_clipmapThe Clipmap Extension Clipmap Overview Using Clipmaps From OpenGL Clipmap Background Information Virtual Clipmaps SGIX_texture_add_envThe Texture Environment Add Extension SGIX_texture_lod_biasThe Texture LOD Bias Extension Background: Texture Maps and LODs Why Use the LOD Bias Extension? Using the Texture LOD Bias Extension SGIX_texture_scale_biasThe Texture Scale Bias Extension SGIX_texture_multi_bufferThe Texture Multibuffer Extension How to use the Texture Multibuffer Extension Chapter 8 Rendering Extensions Blending Extensions Constant Color Blending Extension Minmax Blending Extension Blend Subtract Extension SGIS_fog_functionThe Fog Function Extension FogFunc Example Program New Function SGIS_fog_offsetThe Fog Offset Extension SGIS_multisampleThe Multisample Extension Introduction to Multisampling Using the Multisample Extension Using Advanced Multisampling Options How Multisampling Affects Different Primitives New Functions SGIS_point_parametersThe Point Parameters Extension Using the Point Parameters Extension Point Parameters Example Code Point Parameters Background Information New Procedures and Functions SGIX_reference_planeThe Reference Plane Extension Why Use the Reference Plane Extension? Using the Reference Plane Extension New Function SGIX_shadow, SGIX_depth_texture, and SGIX_shadow_ambientThe Shadow Extensions Shadow Extension Overview Creating the Shadow Map Rendering the Application From the Normal Viewpoint Using the Shadow Ambient Extension SGIX_spriteThe Sprite Extension Available Sprite Modes Using the Sprite Extension New Function Chapter 9 Imaging Extensions Introduction to Imaging Extensions Where Extensions Are in the Imaging Pipeline Pixel Transfer Paths Merging the Geometry and Pixel Pipeline Pixel Pipeline Conversion to Fragments Functions Affected by Imaging Extensions EXT_abgrThe ABGR Extension EXT_convolutionThe Convolution Extension Performing Convolution Retrieving Convolution State Parameters Separable and General Convolution Filters New Functions EXT_histogramThe Histogram and Minmax Extensions Using the Histogram Extension Using the Minmax Part of the Histogram Extension Using Proxy Histograms New Functions EXT_packed_pixelsThe Packed Pixels Extension Why Use the Packed Pixels Extension? Using Packed Pixels Pixel Type Descriptions SGI_color_matrixThe Color Matrix Extension SGI_color_tableThe Color Table Extension Why Use the Color Table Extension? Specifying a Color Table Using Framebuffer Image Data for Color Tables Lookup Tables in the Image Pipeline New Functions SGIX_interlaceThe Interlace Extension Using the Interlace Extension SGIX_pixel_textureThe Pixel Texture Extension Platform Issues New Functions Chapter 10 Video Extensions SGI_swap_controlThe Swap Control Extension New Functions SGI_video_syncThe Video Synchronization Extension Using the Video Sync Extension New Functions SGIX_swap_barrierThe Swap Barrier Extension Why Use the Swap Barrier Extension? Using the Swap Barrier Extension New Functions SGIX_swap_groupThe Swap Group Extension Why Use the Swap Group Extension? Swap Group Details New Function SGIX_video_resizeThe Video Resize Extension Controlling When the Video Resize Update Occurs Using the Video Resize Extension Example New Functions SGIX_video_sourceThe Video Source Extension New Functions Chapter 11 Miscellaneous OpenGL Extensions GLU_EXT_NURBS_tessellatorThe NURBS Tessellator Extension Using the NURBS Tessellator Extension Callbacks Defined by the Extension GLU_EXT_object_spaceThe Object Space Tess Extension SGIX_list_priorityThe List Priority Extension Using the List Priority Extension New Functions SGIX_instrumentsThe Instruments Extension About SGIX_instruments Using the Extension Instruments Example Pseudo Code New Functions Chapter 12 OpenGL Tools ogldebugthe OpenGL Debugger ogldebug Overview Getting Started With ogldebug Interacting With ogldebug Creating a Trace File to Discover OpenGL Problems Using a Configuration File Using Menus to Interact With ogldebug glcthe OpenGL Character Renderer glsThe OpenGL Stream Utility OpenGL Stream Utility Overview glscat Utility glxInfoThe glx Information Utility Chapter 13 Tuning Graphics Applications: Fundamentals Debugging and Tuning Your Program General Tips for Debugging Graphics Programs Specific Problems and Troubleshooting About Pipeline Tuning Three−Stage Model of the Graphics Pipeline Isolating Bottlenecks in Your Application: Overview Factors Influencing Performance Taking Timing Measurements Benchmarking Basics Achieving Accurate Timing Measurements Achieving Accurate Benchmarking Results Tuning Animation How Frame Rate Determines Animation Speed Optimizing