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.
Die Sun OpenGL 1.2-Software für Solaris unterstützt folgende Geräte:
Creator-Grafik, Creator3D-Grafik und Elite3D-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.2 unterstützt: TCX, SX, GX, Creator und Elite3D. Zu diesen Systemen gehören Ultra-Desktop-, Sun Enterprise- und alle SPARCstation-Systeme.
Wenn auf Ihrem System ältere Versionen der Sun OpenGL-Software für Solaris installiert sind, müssen Sie diese mit dem Befehl pkgrm entfernen.
Ü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, melden Sie sich als Superuser an:
% su Password: Paßwort für Superuser
Mit pkgrm entfernen Sie alle vorhandenen Packages der Sun OpenGL-Software für Solaris.
# pkgrm SUNWglrt SUNWglh...
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. |
Siehe "Installieren der Software von der Sun Computer Systems Ergänzungen-CD".
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.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
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:
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.
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.