Home | History | Annotate | Download | only in docs
      1 
      2                          Mesa / BeOS Information
      3 
      4 
      5 
      6 * Introduction
      7 
      8 Brian Paul added in Mesa 3.1 a driver for BeOS R4.5 operating system.
      9 This driver implements a clone of the BGLView class.  This class,
     10 derived from BView, allows OpenGL rendering into any BeOS window.  His
     11 driver was updated in Mesa 4.1 and again in version 6.1 by Philippe
     12 Houdoin, who's maintaining this driver since.
     13 
     14 Any application which uses the BGLView should be able to use Mesa
     15 instead of Be's OpenGL without changing any code.
     16 
     17 Since Be's OpenGL implementation (as of R5) is basically just the
     18 SGI sample implementation, it's pretty slow.  You'll see that Mesa
     19 is considerably faster.
     20 
     21 
     22 * Source Code
     23 
     24 The source code for the driver is in src/mesa/drivers/beos/ directory.
     25 It's not 100% finished at this time but many GLUT-based demos are
     26 working.  No optimizations have been made at this time.
     27 
     28 
     29 * Compiling
     30 
     31 Since Mesa 6.x, it can be build under BeOS with both the R5 builtin gcc version
     32 or more recent gcc versions available for BeOS, like this gcc version 2.95.3 for BeOS 
     33 you can find at http://www.bebits.com/app/2157.
     34 Anyway, keep in mind that to take full advantage of Mesa x86 optimizations, you better
     35 want to use gcc 2.95.3 or sooner versions...
     36 
     37 To build Mesa-powered BeOS libGL.so version, open an Terminal window,
     38 move to Mesa root folder and type this command:
     39 
     40 $ make beos
     41 
     42 Note that the "beos" argument is only needed the first time to setup build config.
     43 Next times, typing "make" will be enough.
     44 
     45 When it finishes the Mesa based libGL.so library for
     46 BeOS will be in the lib/ directory, along libglut.so library.
     47 Several demo/test programs should have been build too under progs/* folders.
     48 If it stop when building one of the progs/* programs, you may want to ignore it
     49 and force make to move on next target by adding the -k make option:
     50 
     51 $ cd progs
     52 $ make -k
     53 
     54 To install it as Be's default libGL.so replacement, put it in your 
     55 /boot/home/config/lib/ directory. All your GL/GLUT apps will use 
     56 the Mesa based then. 
     57 
     58 By default, it build a non-debug version library.
     59 The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target.
     60 For PowerPC BeOS flavor, sorry, Mesa don't have ppc (Altivec) optimizations
     61 yet.
     62 
     63 To build a DEBUG version, type instead this :
     64 
     65 $ DEBUG=1 make
     66 
     67 
     68 * Example Programs
     69 
     70 Look under progs/beos/ for some BGLView-based programs.
     71 You should find under progs/samples and progs/redbook directories GLUT-based programs too.
     72 They all should have been compiled along with the Mesa library.
     73 
     74 
     75 * GLUT
     76 
     77 A beta version of GLUT 3.7 port for BeOS, made by Jake Hamby, can be found at 
     78 http://anobject.com/jehamby/Code/Glut-3.7-x86.zip.
     79 This is the version currently included in Mesa source code, and
     80 build in lib/libglut.so.
     81  
     82 A previous 3.5 version of this GLUT BeOS port used to be available at
     83 http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip.
     84 
     85 They're special versions of GLUT for the BeOS platform.  I don't
     86 believe Mark Kilgard's normal GLUT distribution includes BeOS
     87 support.
     88 
     89 
     90 * Special Features
     91 
     92 Mesa's implementation of the BGLView class has an extra member
     93 function:  CopySubBufferMESA().  It basically works like SwapBuffers()
     94 but it only copies a sub region from the back buffer to the front
     95 buffer.  This is a useful optimization for some applications.
     96 If you use this method in your code be sure that you check at runtime
     97 that you're actually using Mesa (with glGetString) so you don't
     98 cause a fatal error when running with Be's OpenGL.
     99 
    100 
    101 * Work Left To Do
    102 
    103 - BDirectWindow single buffering support is not implemented yet.
    104 - Color index mode is not implemented yet.
    105 - Reading pixels from the front buffer not implemented yet.
    106 - There is also a BGLScreen class in BeOS for full-screen OpenGL rendering.
    107   This should also be implemented for Mesa.
    108 - Multiple renderers add-ons support, first step toward hardware acceleration
    109   support.
    110 
    111 * Other contributors to this BeOS port
    112 
    113 Jake Hamby                      jhamby <at> anobject <dot> com
    114 Marcin Konicki                  ahwayakchih <at> neoni <dot> net
    115 Francois Revol                  revol <at> free <dot> fr
    116 Nathan Whitehorn                nathanw <at> uchicago <dot> edu
    117 
    118 
    119 * Older BeOS Driver
    120 
    121 Mesa 2.6 had an earlier BeOS driver.  It was based on Mesa's Off-screen
    122 rendering interface, not BGLView.  If you're interested in the older
    123 driver you should get Mesa 2.6.
    124 
    125 
    126 * BeOS and Glide
    127 
    128 Mesa 3.0 supported the 3Dfx/Glide library on Beos.  Download Mesa 3.0
    129 if interested.  Ideally, the 3Dfx/Glide support should be updated to
    130 work with the new Mesa 3.1 BGLView implementation.
    131 
    132 The Glide library hasn't been updated for BeOS R4 and newer, to my knowledge,
    133 as of February, 1999.
    134 
    135 
    136 ----------------------------------------------------------------------
    137