Solaris 7 11/99 Handbuch zur Hardware-Plattform von Sun

OpenGL-Software

Die Sun OpenGL-Software für Solaris ist eine Implementierung der OpenGL Application Programming Interface (API) von Sun. Sie stellt eine standardisierte, herstellerunabhängige Grafik-Bibliothek dar. Die OpenGL Software bietet eine Reihe geometrischer Primitive auf unterer Ebene sowie zahlreiche grundlegende und anspruchsvolle Funktionen zum 3D-Rendering wie Modellierung, Schattierung, Beleuchtung, Anti-Aliasing, Texturzuordnung, Nebel und Alpha-Blending.

Unterstützte Plattformen

Die Sun OpenGL 1.2-Software für Solaris unterstützt folgende Geräte:

Entfernen älterer Packages

Wenn auf Ihrem System ältere Versionen der Sun OpenGL-Software für Solaris installiert sind, müssen Sie diese mit dem Befehl pkgrm entfernen.

So entfernen Sie ältere Packages
  1. Überprüfen Sie mit dem Befehl pkginfo, ob auf Ihrem System ältere Versionen der OpenGL-Packages installiert sind.

    Der Befehl pkginfo | egrep -i "OpenGL" zeigt eine Liste aller installierten OpenGL-Packages.


    % 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

  2. Um die Packages zu entfernen, melden Sie sich als Superuser an:


    % su
    Password: Paßwort für Superuser
    

  3. Mit pkgrm entfernen Sie alle vorhandenen Packages der Sun OpenGL-Software für Solaris.


    # pkgrm SUNWglrt SUNWglh...
    

Clusters und Packages für OpenGL

Tabelle 3-5 führt alle Cluster und Packages auf, die mit der Sun OpenGL-Software für Solaris geliefert werden.

Tabelle 3-5 Cluster und Packages für OpenGL

Cluster-Name 

Package-Name 

Beschreibung 

Standardverzeichnis bei der Installation 

SUNWCogl

SUNWglrt

OpenGL-Laufzeitbibliotheken auf Client-Seite 

/usr/openwin/lib

SUNWglrtu

UltraSPARC-spezifische OpenGL-Bibliotheken 

/usr/openwin/platform /sun4u/lib/GL

SUNWffbgl

Geräte-Pipeline für Creator- und Creator3D-Grafikkarten 

/usr/openwin/lib/GL /devhandlers

SUNWafbgl

Ladbare Pipeline für Elite3D-Grafikkarten auf UPA-Bus 

/usr/openwin

SUNWCoglx

SUNWglrtx

Sun OpenGL-64-Bit-Laufzeitbibliotheken 

/usr/openwin

SUNWafbgx

Sun OpenGL ladbare 64-Bit-Pipeline für Elite3D-Grafikbeschleuniger auf UPA-Bus 

/usr/openwin

SUNWffbgx

Sun OpenGL ladbare 64-Bit-Pipeline für Creator-Grafikbeschleuniger auf UPA-Bus 

/usr/openwin

SUNWCogl

OpenGL-Kernsoftware, siehe SUNWCogl in der linken Spalte oben.

 

Installation von OpenGL

Siehe "Installieren der Software von der Sun Computer Systems Ergänzungen-CD".

Nach Installation der Packages

Nach der Installation der Packages gehen Sie wie folgt vor:

So überprüfen Sie die Package-Installation
  1. Verlassen Sie das Fenstersystem, und starten Sie es neu, damit die neu installierte GLX-Server-Erweiterung geladen wird.

  2. Überprüfen Sie mit ogl_install_check, ob die OpenGL-Bibliotheken korrekt installiert wurden.

    Das Testprogramm ogl_install_check gibt die Version der verwendeten OpenGL-Bibliothek und des Renderers aus und zeigt eine rotierende Scheibe an. Das Programm erzeugt auf dem UltraSPARC Creator3D-System folgende Ausgabe:


    OpenGL Vendor:             Sun Microsystems, Inc.
    OpenGL Version:            1.2 Sun OpenGL 1.2 for Solaris

Falls Probleme mit Solaris OpenGL auftreten, sollten bei der Diagnose folgende Werte notiert werden:


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

Unerwartet langsames lokales Rendering

Soweit möglich überträgt die Sun OpenGL-Software für Solaris die Bilddaten am X-Server vorbei direkt zur Grafikkarte. Dies wird durch Suns DGA-Mechanismus ermöglicht, der Bildschirmbereiche sperren kann. Es gehört jedoch zu den Sicherheitsmerkmalen von Solaris, daß nur der Benutzer, der sich ursprünglich beim Fenstersystem angemeldet hat, mit DGA Bildschirmbereiche sperren darf. Nur Benutzer, die Eigentümer des Fenstersystems sind, haben Zugriff auf DGA.

Wenn die Leistung beim lokalen Rendering unbefriedigend ist, kann dies an oben beschriebener Sicherheitsvorkehrung liegen. Falls das Fenstersystem zwar von Ihnen gestartet wurde, aber ein anderer Benutzer der Workstation mit su in seine eigene Umgebung wechselt, wird die Anwendung nicht über DGA ausgeführt, selbst wenn der zweite Benutzer die Anwendung lokal ausführt.

Wenn Ihnen das lokale Rendering unbefriedigend erscheint, stellen Sie mit dem Diagnoseprogramm ogl_install_check (in /usr/openwin/demo/GL) fest, ob die Anwendung über DGA ausgeführt wird. Wenn ogl_install_check in seinem Statusreport des OpenGL GLX-Servers anzeigt, daß der GLX-Kontext indirekt ist, ändern Sie die Zugriffsrechte so, daß alle Benutzer DGA-Zugriff erhalten.

Dazu gehen Sie wie folgt vor:

So gewähren Sie allen lokalen Benutzern Zugriff auf DGA
  1. Melden Sie sich als Superuser an:


    % su
    Password: Paßwort für Superuser
    

  2. Ändern Sie die Zugriffsrechte so, daß alle Benutzer Schreib- und Leserechte für folgende Geräte erhalten:


    % chmod 666 /dev/mouse /dev/kbd /dev/sound/* /dev/fbs/*
    

    Damit erhalten alle Benutzer DGA-Zugriff während der aktuellen Sitzung des Fenstersystems (erfordert X-Zugangsberechtigung, siehe xhost(1)).

  3. Ändern Sie die voreingestellten Zugriffsrechte aller Geräte in der Datei /etc/logindevperm in 0666, damit alle Benutzer Lese- und Schreibzugriff erhalten.

    Ersetzen Sie beispielsweise 0600 in den folgenden Zeilen in logindevperm durch 0666. Wenn Sie sich danach das nächste Mal anmelden und das Fenstersystem neu starten, haben immer noch alle Benutzer Zugriff auf die entsprechenden Geräte.


    /dev/console     0600     /dev/mouse:/dev/kbd
    /dev/console     0600     /dev/sound/*       # audio devices
    /dev/console     0600     /dev/fbs/*         #frame buffers

Beachten Sie, daß Ihr System damit nicht mehr sicher ist.