progs/egl: Add an OpenGL ES demo for EGL_OES_image_pixmap.
[mesa.git] / docs / README.BEOS
index 4bcb287970594d2acb103aef391325561f2e9e98..efd84e888cba808d75fc9392ddc93c0e14334052 100644 (file)
 
 
 
-Introduction
+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.
+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 R4) is basically just the
+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
 
-Source Code
-
-The source code for the driver is in Mesa-3.1/src/BeOS/GLView.cpp
+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.  Specifically, color index mode isn't implemented at all.
-No optimizations have been made at this time.  Any volunteers?
+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
 
-Compiling
+Note that the "beos" argument is only needed the first time to setup build config.
+Next times, typing "make" will be enough.
 
-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.
+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. 
 
-Example Programs
+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.
 
-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.
+To build a DEBUG version, type instead this :
 
+$ DEBUG=1 make
 
 
-GLUT
+* Example Programs
 
-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.
+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.
 
-In any case, you'll have to download and compile GLUT for BeOS and
-put libglut.so in the Mesa-3.x/lib/ directory before you can compile
-the demos/, samples/ and book/ programs.
 
-GLUT for BeOS can be found at:  ??? fill-in ???
+* GLUT
 
-This is a special version of GLUT adapted for the BeOS.  I don't
+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.
+
 
-Old BeOS Driver
+* 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
+* 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.
+
 
 ----------------------------------------------------------------------
-$Id: README.BEOS,v 1.3 1999/02/06 06:32:20 brianp Exp $