Solaris 8 Handbok för Sun-plattformar

OpenGL-programvara

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.

Plattformar som stöds

Sun OpenGL 1.2 för Solaris stöder följande enheter:

Ta bort gamla paket

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.

Gör så här för att ta bort gamla paket

  1. 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

  2. Logga in som superanvändare:


    % su
    Password: superanvändarens lösenord
    

  3. Ta bort alla befintliga paket med Sun OpenGL för Solaris genom att köra pkgrm:


    # pkgrm SUNWglrt SUNWglh...
    

OpenGL-paket

Tabell 3-5 listar de paket som Sun OpenGL för Solaris består av.

Tabell 3-5 OpenGL-paket

Paketnamn 

Beskrivning 

Förvald installationskatalog 

SUNWglrt

Runtime-bibliotek för OpenGL (klientsidan) 

/usr/openwin/lib

SUNWglrtu

OpenGL-bibliotek specifika för UltraSPARCTM

/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

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

SUNWglh

"Header"-filerna GL, GLU, GLw och GLX för Sun OpenGL 1.2 

/usr

SUNWCogl

Grund för OpenGL-programvaran 

 

Installera OpenGL

Se "Installera programvara från tilläggs-CD:n".

Efter paketinstallationen

När paketen har installerats ska du göra följande.

Gör så här för att kontrollera paketinstallationen

  1. Avsluta fönstersystemet och starta om det. Fönstersystemet kommer därmed att läsa in det nyinstallerade GLX-servertillägget.

  2. 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

Överraskande långsam lokal rendering

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:

Gör så här för att ge alla lokala användare åtkomst till DGA

  1. Bli superanvändare:


    % su
    Password: superanvändarens lösenord
    

  2. Ä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)).

  3. Ä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.