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