Die OpenGL-Software von Solaris ist eine Implementierung des 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.
Die Solaris OpenGL 1.1.2-Software unterstützt folgende Geräte:
Creator- und Creator3D-Grafik - Die OpenGL-Funktionen werden von der Hardware beschleunigt.
SX, GX, GX+, TGX, TGX+, S24 - Die OpenGL-Funktionen werden auf Software-Ebene zur Verfügung gestellt.
Alle Sun SPARCTM-Systeme, die mit den folgenden Grafikkarten ausgestattet sind, werden von OpenGL 1.1.2 unterstützt: TCX, SX, GX, Creator und Elite3D. Zu diesen Systemen gehören UltraTM-Desktop-, Sun EnterpriseTM- und alle SPARCstationTM-Systeme.
Wenn auf Ihrem System ältere Versionen der Solaris OpenGL-Software-Packages installiert sind, müssen Sie diese mit dem Befehl pkgrm entfernen. Gehen Sie folgendermaßen vor:
Ü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
Um die Packages zu entfernen, werden Sie Superuser:
% su Password: Paßwort für Superuser
Mit pkgrm entfernen Sie alle vorhandenen Solaris OpenGL-Packages:
# pkgrm SUNWglrt SUNWglh...
Zur Installation der OpenGL-Software gehen Sie wie folgt vor:
Starten Sie die CDE-Umgebung oder OpenWindows.
Legen Sie die Ergänzungen-CD in Ihr CD-ROM-Laufwerk ein.
Das Fenster für den Dateimanager erscheint.
Öffnen Sie ein Befehlsfenster, und werden Sie Superuser, indem Sie den Befehl su mit dem Paßwort für Superuser eingeben.
Geben Sie an der Eingabeaufforderung # den Befehl swmtool ein:
# /usr/sbin/swmtool -d /cdrom/cdrom0/Product
Das Fenster Admintool: Software hinzufügen wird angezeigt.
Wählen Sie im Fenster Admintool: Software hinzufügen den Eintrag für die 32- oder 64-Bit-Version der Open GL Runtime Libraries Software 1.1.2.
Klicken Sie auf Hinzufügen.
Die Installation dauert einige Minuten.
Verlassen Sie Admintool.
Tabelle 3-5 führt alle Cluster und Packages auf, die mit Solaris OpenGL 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. |
Nach der Installation der Packages gehen Sie wie folgt vor:
Verlassen Sie das Fenstersystem, und starten Sie es neu, damit die neu installierte GLX-Server-Erweiterung geladen wird.
Ü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.1.2 Solaris OpenGL 1.1.2_08
Wenn 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
Soweit möglich überträgt Solaris OpenGL 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, müssen Sie die Zugriffsrechte so ändern, daß alle Benutzer DGA-Zugriff erhalten.
Dazu gehen Sie wie folgt vor:
Melden Sie sich als Superuser an:
% su Password: Paßwort für Superuser
Ä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)).
Ändern Sie die voreingestellten Zugriffsrechte aller Geräte in der Datei /etc/logindevperm in 0666, damit alle Benutzer Lese- und Schreibzugriff erhalten.
Beispielsweise sollte 0600 in den folgenden Zeilen in logindevperm durch 0666 ersetzt werden. 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.