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