|
| 以 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 Name | 1.0 Extension Name | Changed Syntax or Semantics |
| Vertex arrays | GL_EXT_vertex_array | Yes |
| Polygon offset | GL_EXT_polygon_offset | Yes |
| RGBA logical operations | GL_EXT_blend_logic_op | No |
| Internal texture image formats | GL_EXT_texture | No |
| Texture replace environment | GL_EXT_texture | No |
| Texture proxies | GL_EXT_texture | Yes |
| Copy texture and subtexture | GL_EXT_copy_texture
GL_EXT_subtexture | No |
| Texture objects | GL_EXT_texture_object | Yes |
-
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:
-
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.
|
|