|  | 
 |                          Mesa / BeOS Information | 
 |  | 
 |  | 
 |  | 
 | * Introduction | 
 |  | 
 | Brian Paul added in Mesa 3.1 a driver for BeOS R4.5 operating system. | 
 | This driver implements a clone of the BGLView class.  This class, | 
 | derived from BView, allows OpenGL rendering into any BeOS window.  His | 
 | driver was updated in Mesa 4.1 and again in version 6.1 by Philippe | 
 | Houdoin, who's maintaining this driver since. | 
 |  | 
 | Any application which uses the BGLView should be able to use Mesa | 
 | instead of Be's OpenGL without changing any code. | 
 |  | 
 | Since Be's OpenGL implementation (as of R5) is basically just the | 
 | SGI sample implementation, it's pretty slow.  You'll see that Mesa | 
 | is considerably faster. | 
 |  | 
 |  | 
 | * Source Code | 
 |  | 
 | The source code for the driver is in src/mesa/drivers/beos/ directory. | 
 | It's not 100% finished at this time but many GLUT-based demos are | 
 | working.  No optimizations have been made at this time. | 
 |  | 
 |  | 
 | * Compiling | 
 |  | 
 | Since Mesa 6.x, it can be build under BeOS with both the R5 builtin gcc version | 
 | or more recent gcc versions available for BeOS, like this gcc version 2.95.3 for BeOS  | 
 | you can find at http://www.bebits.com/app/2157. | 
 | Anyway, keep in mind that to take full advantage of Mesa x86 optimizations, you better | 
 | want to use gcc 2.95.3 or sooner versions... | 
 |  | 
 | To build Mesa-powered BeOS libGL.so version, open an Terminal window, | 
 | move to Mesa root folder and type this command: | 
 |  | 
 | $ make beos | 
 |  | 
 | Note that the "beos" argument is only needed the first time to setup build config. | 
 | Next times, typing "make" will be enough. | 
 |  | 
 | When it finishes the Mesa based libGL.so library for | 
 | BeOS will be in the lib/ directory, along libglut.so library. | 
 | Several demo/test programs should have been build too under progs/* folders. | 
 | If it stop when building one of the progs/* programs, you may want to ignore it | 
 | and force make to move on next target by adding the -k make option: | 
 |  | 
 | $ cd progs | 
 | $ make -k | 
 |  | 
 | To install it as Be's default libGL.so replacement, put it in your  | 
 | /boot/home/config/lib/ directory. All your GL/GLUT apps will use  | 
 | the Mesa based then.  | 
 |  | 
 | By default, it build a non-debug version library. | 
 | The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target. | 
 | For PowerPC BeOS flavor, sorry, Mesa don't have ppc (Altivec) optimizations | 
 | yet. | 
 |  | 
 | To build a DEBUG version, type instead this : | 
 |  | 
 | $ DEBUG=1 make | 
 |  | 
 |  | 
 | * Example Programs | 
 |  | 
 | Look under progs/beos/ for some BGLView-based programs. | 
 | You should find under progs/samples and progs/redbook directories GLUT-based programs too. | 
 | They all should have been compiled along with the Mesa library. | 
 |  | 
 |  | 
 | * GLUT | 
 |  | 
 | A beta version of GLUT 3.7 port for BeOS, made by Jake Hamby, can be found at  | 
 | http://anobject.com/jehamby/Code/Glut-3.7-x86.zip. | 
 | This is the version currently included in Mesa source code, and | 
 | build in lib/libglut.so. | 
 |   | 
 | A previous 3.5 version of this GLUT BeOS port used to be available at | 
 | http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip. | 
 |  | 
 | They're special versions of GLUT for the BeOS platform.  I don't | 
 | believe Mark Kilgard's normal GLUT distribution includes BeOS | 
 | support. | 
 |  | 
 |  | 
 | * Special Features | 
 |  | 
 | Mesa's implementation of the BGLView class has an extra member | 
 | function:  CopySubBufferMESA().  It basically works like SwapBuffers() | 
 | but it only copies a sub region from the back buffer to the front | 
 | buffer.  This is a useful optimization for some applications. | 
 | If you use this method in your code be sure that you check at runtime | 
 | that you're actually using Mesa (with glGetString) so you don't | 
 | cause a fatal error when running with Be's OpenGL. | 
 |  | 
 |  | 
 | * Work Left To Do | 
 |  | 
 | - BDirectWindow single buffering support is not implemented yet. | 
 | - Color index mode is not implemented yet. | 
 | - Reading pixels from the front buffer not implemented yet. | 
 | - There is also a BGLScreen class in BeOS for full-screen OpenGL rendering. | 
 |   This should also be implemented for Mesa. | 
 | - Multiple renderers add-ons support, first step toward hardware acceleration | 
 |   support. | 
 |  | 
 | * Other contributors to this BeOS port | 
 |  | 
 | Jake Hamby                      jhamby <at> anobject <dot> com | 
 | Marcin Konicki                  ahwayakchih <at> neoni <dot> net | 
 | Francois Revol                  revol <at> free <dot> fr | 
 | Nathan Whitehorn                nathanw <at> uchicago <dot> edu | 
 |  | 
 |  | 
 | * Older BeOS Driver | 
 |  | 
 | Mesa 2.6 had an earlier BeOS driver.  It was based on Mesa's Off-screen | 
 | rendering interface, not BGLView.  If you're interested in the older | 
 | driver you should get Mesa 2.6. | 
 |  | 
 |  | 
 | * BeOS and Glide | 
 |  | 
 | Mesa 3.0 supported the 3Dfx/Glide library on Beos.  Download Mesa 3.0 | 
 | if interested.  Ideally, the 3Dfx/Glide support should be updated to | 
 | work with the new Mesa 3.1 BGLView implementation. | 
 |  | 
 | The Glide library hasn't been updated for BeOS R4 and newer, to my knowledge, | 
 | as of February, 1999. | 
 |  | 
 |  | 
 | ---------------------------------------------------------------------- |