Solaris OpenGL1.1 Implementation and Performance Guide
只搜尋這本書
以 PDF 格式下載這本書

Introduction to the Solaris OpenGL Software

1

Overview

The Solaris OpenGL software is Sun's native implementation of the OpenGL application programming interface (API). The OpenGL API is an industry-standard, vendor-neutral graphics library. It provides a small set of low-level geometric primitives and many basic and advanced 3D rendering features, such as modeling transformations, shading, lighting, anti-aliasing, texture mapping, fog, and alpha blending.

Solaris OpenGL 1.1 Product Functionality

The Solaris OpenGL 1.1 software is a functionally conforming implementation based on the OpenGL 1.1, GLX 1.2, and GLU 1.2 standard specifications. The Solaris OpenGL software incorporates the new features in OpenGL 1.1 and includes support for the SERVER_OVERLAY_VISUALS property.

OpenGL 1.1 Library

The OpenGL 1.1 library is a superset of OpenGL 1.0, including all OpenGL 1.0 functionality and additional features that were available as extensions to OpenGL 1.0. The added extensions, which are listed Table 1-1 on page 2, have become part of base OpenGL functionality; however, the semantics or syntax
may have changed for inclusion in OpenGL 1.1. For detailed information on the extensions incorporated into the OpenGL 1.1 specification, see Appendix C in The OpenGL Graphics System: A Specification, Version 1.1.
Table 1-1
OpenGL 1.1 Name1.0 Extension NameChanged Syntax or Semantics
Vertex arraysGL_EXT_vertex_arrayYes
Polygon offsetGL_EXT_polygon_offsetYes
RGBA logical operationsGL_EXT_blend_logic_opNo
Internal texture image formatsGL_EXT_textureNo
Texture replace environmentGL_EXT_textureNo
Texture proxiesGL_EXT_textureYes
Copy texture and subtextureGL_EXT_copy_texture
GL_EXT_subtexture
No
Texture objectsGL_EXT_texture_objectYes

Note - Because the Solaris OpenGL 1.1 software is based on a more current version of the OpenGL specifications (OpenGL 1.1, GLX 1.2, GLU 1.2) than the Solaris OpenGL 1.0 version, Solaris OpenGL 1.0 customers should be alert for software changes required to support the updated OpenGL specifications.

Supported OpenGL 1.1 Extensions

The Solaris OpenGL 1.1 software supports the following OpenGL 1.1 extensions:
  • 3D texture mapping extension - GL_EXT_texture3D
  • ABGR reverse-order color format extension - GL_EXT_abgr
  • Texture color table extension - GL_SGI_texture_color_table
  • SGI color table extension - GL_SGI_color_table
  • Sun geometry compression extension - GL_SUNX_geometry_compression
  • Rescale normal extension - GL_EXT_rescale_normal
The Solaris OpenGL software also supports the following GLX extension:
  • Return the transparent pixel index for an overlay/underlay window pair - GLX_SUN_get_transparent_index. See the glXGetTransparentIndexSUN(3gl) man page.
Note that other implementations of OpenGL may have used extensions that your application calls. To determine what extensions, if any, your application uses, search for command-name patterns such as glProcedureEXT(3gl). If your application uses extensions, you will need to ensure that it also handles the functionality in an OpenGL 1.1-compliant manner. To determine what extensions an OpenGL implementation supports, use glXQueryExtensionString(3gl).

Compatibility Issues

Applications compiled with the Solaris OpenGL 1.0 library will run unchanged with the Solaris OpenGL 1.1 implementation. However, note the following backward compatibility issues:
  • To reduce function call overhead and improve performance for vertex calls in immediate mode, vertex commands such as glVertex, glColor, glNormal, glTexCoord and glIndex have been redefined as macros in the Solaris OpenGL 1.1 software. Therefore, by default, applications compiled with the Solaris OpenGL 1.1 library will not run on the 1.0 library. However, to compile an application with the Solaris OpenGL 1.1 library and maintain compatibility with 1.0, use the flag -DSUN_OGL_NO_VERTEX_MACROS when compiling the application. See the glVertex (3gl) man page for further information.
  • If your application uses the new features in the Solaris OpenGL 1.1 library, it will not be backward compatible with the Solaris OpenGL 1.0 library.

MT-Safe

The Solaris OpenGL 1.1 library is MT-safe as long as there is only one OpenGL rendering thread. For example, an application can create an OpenGL rendering thread and a separate Xlib thread for handling a graphics user interface. To be MT-safe with Xlib, the application must call XInitThreads before any of the GLX calls.

Supported Platforms

The Solaris OpenGL 1.1 software supports the following devices:
  • Creator Graphics and Creator3D Graphics - OpenGL functionality is accelerated in hardware.
  • SX, ZX, GX, GX+, TGX, TGX+, S24 - OpenGL functionality is performed in software.
  • All SMCC SPARCTM systems equipped with the following frame buffers are supported on the OpenGL 1.1 software: the TCX, SX, GX, ZX and Creator families of frame buffers. This includes UltraTM desktop, Ultra EnterpriseTM and all the legacy SPARCstationTM family.
  • The software requirement is:

    · Solaris 2.5.1 plus patch 103796-09 or higher.

    · Solaris 2.6 software or higher.

Where to Look for Information on OpenGL Programming

For information on how to write an OpenGL application, see the following books:
  • OpenGL Programming Guide by Neider, Davis, and Woo
  • OpenGL Reference Manual by the OpenGL Architecture Review Board
  • OpenGL Programming for X Windows Systems by Mark Kilgard
These books are published by Addison-Wesley and are available through your local bookstore.
For more information on OpenGL, you may want to refer to "The Design of the OpenGL Interface" written by Mark Segal and Kurt Akeley. A PostScript copy of this document is included in the SUNWgldoc package or the Solaris OpenGL 1.1 CD-ROM. For the complete specification of what constitutes OpenGL, see The OpenGL Graphics System: A Specification, Version 1.1, also written by Mark Segal and Kurt Akeley. An online version of this specification is located at
http://www.sgi.com/Technology/OpenGL/glspec1.1/glspec.html).

Finally, for a good source of answers to questions you may have about OpenGL, see Silicon Graphics's OpenGL information center at http://www.sgi.com/Technology/OpenGL/opengl.html.