137 lines
4.6 KiB
Plaintext
137 lines
4.6 KiB
Plaintext
|
|
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.
|
|
|
|
|
|
----------------------------------------------------------------------
|