The Sun OpenGL software for Solaris is the Sun 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.
The Sun OpenGL 1.2.1 software for Solaris supports the following devices:
Creator Graphics, Creator3D Graphics, Elite3D Graphics, and Expert3D Graphics--OpenGL functionality is accelerated in hardware.
SX, GX, GX+, TGX, TGX+, S24--OpenGL functionality is performed in software.
All Sun SPARC systems equipped with the following frame buffers are supported on the OpenGL 1.2.1 software: the TCX, SX, GX, Creator, Elite3D, and Expert3D families of frame buffers. This includes Ultra desktop, Sun Enterprise, and all the legacy SPARCstation family.
If you have older versions of the Sun OpenGL software for Solaris packages, you must use the pkgrm command to remove them.
Check to see whether any older versions of the OpenGL packages are installed using the pkginfo command.
The pkginfo | egrep -i "OpenGL" command lists any existing OpenGL packages that you have installed.
% pkginfo | egrep -i "OpenGL" application SUNWffbgl Creator Graphics (FFB) OpenGL Support application SUNWglrt OpenGL Runtime Libraries application SUNWglrtu OpenGL Platform Specific Runtime Libraries application SUNWglwrt OpenGL Widget Library application SUNWafbgl Loadable pipeline for UPA Bus Elite3D graphics application SUNWgldoc Solaris OpenGL Documentation and Man Pages application SUNWglh Solaris OpenGL Header Files application SUNWglut Solaris OpenGL Utilities and Example Programs application SUNWglwh Solaris OpenGL Widget Header Files |
To remove the packages, become superuser:
% su Password: superuser password |
Run pkgrm to remove all existing Sun OpenGL software for Solaris packages.
# pkgrm SUNWglrt SUNWglh... |
Table 3-6 lists the packages that are provided with the Sun OpenGL software for Solaris.
Table 3-6 OpenGL Packages
Package Name |
Description |
Default Install Location |
---|---|---|
SUNWglh |
OpenGL header files |
/usr |
SUNWglrt |
OpenGL client-side runtime libraries |
/usr/openwin/lib |
SUNWglsr |
OpenGL generic SPARC software renderer |
/usr/openwin/lib |
SUNWglrtu |
OpenGL libraries specific to UltraSPARCTM |
/usr/openwin/platform/sun4u/lib/GL |
SUNWglsrz |
OpenGL UltraSPARC software renderer |
/usr/openwin/platform/sun4u/lib/GL |
SUNWafbgl |
OpenGL device pipeline for Elite3D graphics accelerators |
/usr/openwin/lib/GL/devhandlers |
SUNWffbgl |
OpenGL device pipeline for Creator and Creator3D graphics accelerators |
/usr/openwin/lib/GL/devhandlers |
SUNWifbgl |
OpenGL device pipeline for Expert3D graphics accelerator |
/usr/openwin/lib/GL/devhandlers |
SUNWglrtx |
Sun OpenGL 64-bit Runtime Libraries |
/usr/openwin |
SUNWglsrx |
OpenGL 64-bit UltraSPARC software renderer |
/usr/openwin/platform/sun4u/lib/sparcv9/GL |
SUNWafbgx |
OpenGL 64-bit device pipeline for Elite3D graphics accelerator |
/usr/openwin/lib/sparcv9/GL/devhandlers |
SUNWffbgx |
OpenGL 64-bit device pipeline for Creator and Creator3D graphics accelerators |
/usr/openwin/lib/sparcv9/GL/devhandlers |
SUNWifbgx |
OpenGL 64-bit device pipeline for Expert3D graphics accelerator |
/usr/openwin/lib/sparcv9/GL/devhandlers |
See "Installing Supplement CD Software".
After installing the packages, do the following:
Exit the window system and restart it so that the window system loads the newly installed GLX server extension.
To verify that the OpenGL libraries are installed correctly, run ogl_install_check.
The ogl_install_check test program prints the version of the OpenGL library and renderer used, and renders a rotating wheel. The program returns the following output when it is run on an UltraSPARC Creator3D:
OpenGL Vendor: Sun Microsystems, Inc. OpenGL Version: 1.2.1 Sun OpenGL 1.2.1 for Solaris |
For diagnostic purposes, the following values should be noted if Solaris OpenGL software problems are seen:
OpenGL Renderer: Creator 3D, VIS OpenGL Extension Support: GL_EXT_texture3D GL_SGI_color_table GL_SUN_geometry_compression GL_EXT_abgr GL_EXT_rescale_normal OpenGL GLX Server: Detail Status Report GLX: Context is direct. GLX: OpenGL Rendering in use GLX: Double Buffering in use GLX: Color Buffer (GLX_BUFFER_SIZE) = 24 bits GLX: Depth Buffer (GLX_DEPTH_SIZE) = 28 bits GLX: Stencil Buffer (GLX_STENCIL_SIZE) = 4 bits GLX: RGBA (True Color/Direct Color) Visual in use OpenGL Library: Detail Status Report Number of color bits (R/G/B/A): 8/8/8/0 Frame Buffer Depth (GL_DEPTH_BITS):28 |
Whenever possible, Sun OpenGL software for Solaris renders directly to the frame buffer, bypassing the X server. This is enabled by Sun's DGA mechanism for locking portions of the screen. However, a Solaris security feature only allows the user who originally logged in to the window system to use DGA to lock portions of the screen. Only owners of the window system have access to DGA.
If you notice poor performance when rendering locally, the cause may be this Solaris security feature. For example, if you start the window system, and another user at the workstation changes to that user's own environment using su, the application will not run via DGA even though the second user is running the application locally.
If you notice slow local rendering, run the ogl_install_check diagnostic program (found in /usr/openwin/demo/GL) to determine whether the application is running via DGA. If the OpenGL GLX server status report from the ogl_install_check program says that the GLX context is indirect, edit the login permissions to enable DGA access for all users.
To give all local users access to DGA, follow these steps:
Become superuser:
% su Password: superuser password |
Edit permissions to allow world read/write access to the following devices:
% chmod 666 /dev/mouse /dev/kbd /dev/sound/* /dev/fbs/* |
This enables DGA access for all users for the duration of the current window system session (subject to X authorization, see xhost(1)).
Edit the /etc/logindevperm file and change the default permissions of all devices listed in the file to 0666 to allow world read/write access.
For example, in the following lines in logindevperm, change 0600 to 0666 so that the next time you log in and restart your window system, it will still be accessible by all users.
/dev/console 0600 /dev/mouse:/dev/kbd /dev/console 0600 /dev/sound/* # audio devices /dev/console 0600 /dev/fbs/* #frame buffers |
Note that your system is no longer secure.