Sun OpenGL för Solaris är Suns egen implementation av programmerargränssnittet för OpenGL (API), optimerad för Sun-miljön. OpenGL är en leverantörsoberoende industristandard för grafikbibliotek. Biblioteket innehåller funktioner för ett mindre antal enkla geometriska figurer samt ett flertal 3D-funktioner, både enkla och avancerade. Bland 3D-funktionerna märks transformationer, skuggning, belysning, rasterutjämning, strukturavbildning, dimma och alfa-blandning.
Sun OpenGL 1.2 för Solaris stöder följande enheter:
Creator-, Creator3D- eller Elite3D-grafik--OpenGL-funktionerna accelereras i maskinvaran
SX, GX, GX+, TGX, TGX+, S24--OpenGL-funktionalitet implementeras av programvaran.
Alla Sun SPARCTM-system med följande bildskärmskort stöds av OpenGL 1.2: TCX, SX, GX, Creator och Elite3D. Till systemen hör Ultra desktop, Sun Enterprise och äldre system i SPARCstation-familjen.
Om du tidigare har installerat äldre versioner av paket med Sun OpenGL för Solaris måste du ta bort dem med hjälp av kommandot pkgrm.
Kontrollera med hjälp av kommandot pkginfo om äldre versioner av OpenGL-paketen är installerade.
Kommandot pkginfo | egrep -i "OpenGL" visar en förteckning över de OpenGL-paket som är installerade:
% 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
% su Password: superanvändarens lösenord
Ta bort alla befintliga paket med Sun OpenGL för Solaris genom att köra pkgrm:
# pkgrm SUNWglrt SUNWglh...
Tabell 3-5 listar de grupper och paket som Sun OpenGL för Solaris består av.
Tabell 3-5 Grupper och paket i OpenGL
Gruppnamn |
Paketets namn |
Beskrivning |
Förvald installationskatalog |
---|---|---|---|
SUNWCogl |
SUNWglrt |
Runtime-bibliotek för OpenGL (klientsidan) |
/usr/openwin/lib |
SUNWglrtu |
OpenGL-bibliotek specifika för UltraSPARC |
/usr/openwin/platform/sun4u/lib/GL |
|
SUNWffbgl |
Enhetspipeline för Creator och Creator3D-bildskärmsminnen |
/usr/openwin/lib/GL/devhandlers |
|
SUNWafbgl |
Laddbar pipeline för UPA Bus Elite3D-grafik |
/usr/openwin |
|
SUNWCoglx |
SUNWglrtx |
64-bitars runtime-bibliotek för Sun OpenGL |
/usr/openwin |
SUNWafbgx |
Sun OpenGL 64-bitars laddbar pipeline för UPA Bus Elite3D grafikaccelerator |
/usr/openwin |
|
SUNWffbgx |
Sun OpenGL 64-bitars laddbar pipeline för UPA Bus Creator grafikaccelerator |
/usr/openwin |
|
SUNWCogl |
Grund för OpenGL-programvara, se SUNWCogl i den vänstra kolumnen ovan. |
Se "Installera programvara från tilläggs-CD:n".
När paketen har installerats ska du göra följande.
Avsluta fönstersystemet och starta om det. Fönstersystemet kommer därmed att läsa in det nyinstallerade GLX-servertillägget.
Kontrollera att OpenGL-biblioteken installerats korrekt genom att köra ogl_install_check.
Programmet ogl_install_check talar om vilken version av OpenGL-biblioteket och renderingsprogram som används, och renderar ett roterande hjul. Programmet ger följande utdata när det körs på en UltraSPARC Creator3D:
OpenGL Vendor: Sun Microsystems, Inc OpenGL Version: 1.2 Sun OpenGL 1.2 för Solaris
Om det uppstår problem med Solaris OpenGL underlättas felsökningen om man känner till följande värden:
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
När så är möjligt går Sun OpenGL för Solaris förbi X-servern och renderar direkt till bildskärmsminnet. Detta är möjligt tack vare Suns DGA-mekanism, som används för att låsa delar av skärmen. En säkerhetsspärr i Solaris gör dock att bara den användare som ursprungligen loggade in i fönstersystemet kan använda DGA för att låsa delar av skärmen. Endast användare av fönstersystemet har tillgång till DGA.
Om du upplever dåliga prestanda vid lokal rendering kan det bero på denna säkerhetsspärr. Om du t ex startar fönstersystemet och en annan användare vid arbetsstationen växlar till sin egen miljö med kommandot su, kommer programmet inte att köras via DGA även om den andra användaren kör programmet lokalt.
Om du råkar ut för långsam lokal rendering, kör felsökningsprogrammet ogl_install_check (som ligger i katalogen /usr/openwin/demo/GL). Du får då veta om programmet använder DGA. Om ogl_install_check-rapporten anger att GLX-omgivningen är indirekt ändrar du inloggningsbehörigheterna så att alla användare får tillgång till DGA.
Följ de här steg-för-steg-instruktionerna för att ge alla användare tillgång till DGA:
% su Password: superanvändarens lösenord
Ändra behörigheterna så att alla får läs- och skrivrättigheter till följande enheter:
% chmod 666 /dev/mouse /dev/kbd /dev/sound/* /dev/fbs/*
På detta sätt får alla användare tillgång till DGA så länge den aktuella fönstersystemssessionen pågår (under förutsättning att de har rätt behörighet i X-Windows, se xhost(1)).
Ändra i filen /etc/logindevperm så att alla enheter som finns med i filen får 0666 som förvald behörighet.
Det betyder att alla får läs- och skrivrättigheter till enheterna. I följande rader, hämtade från filen logindevperm, ändrar du 0600 till 0666. Det innebär att fönstersystemet fortfarande kommer att vara tillgängligt för alla användare nästa gång du loggar in och startar om fönstersysteme:t
/dev/console 0600 /dev/mouse:/dev/kbd /dev/console 0600 /dev/sound/* # audio devices /dev/console 0600 /dev/fbs/* #frame buffers
Kom ihåg att ditt system inte längre är säkert.