
                         Mesa / BeOS Information



Introduction

Mesa 3.1 features a new driver for the BeOS.  The new driver implements
a clone of the BGLView class.  This class, derived from BView, allows
OpenGL rendering into a BeOS window.

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 R4) 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 Mesa-3.1/src/BeOS/GLView.cpp
It's not 100% finished at this time but many GLUT-based demos are
working.  No optimizations have been made at this time.



Compiling

Simply cd to the Mesa-3.x directory and type "make beos-r4".
When it finishes the libMesaGL.so and libMesaGLU.so libraries for
BeOS will be in the Mesa-3.x/lib/ directory.



Example Programs

Look in the Mesa-3.x/BeOS/ directory for one or two BGLView demo
programs.  They should have been compiled along with the Mesa
library.



GLUT

A version of GLUT 2.5 for BeOS can be found in src-glut.beos/.
The original distribution can be obtained from
http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip

This is a special version of GLUT adapted for the BeOS.  I don't
believe Mark Kilgard's normal GLUT distribution includes BeOS
support.

It seems that you have to recompile GLUT with libMesaGL.so instead
of libGL.so in order for everything to work.  I'm not sure why.



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

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.



Old 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, to my knowledge, as
of February, 1999.


----------------------------------------------------------------------
$Id: README.BEOS,v 1.5 1999/03/03 02:34:04 brianp Exp $
