progs/egl: Add an OpenGL ES demo for EGL_OES_image_pixmap.
[mesa.git] / docs / README.BEOS
index 67ea3e271b5d95225592151e3b4de3363b30c40d..efd84e888cba808d75fc9392ddc93c0e14334052 100644 (file)
-========================================================
-MESA 2.6 BEOS PORT RELEASE 2
-========================================================
-
-BeOS notes
---------------------------------------------------------
-
-       The BeOS driver is implemented through Mesa's 
-       Off-Screen rendering interface. This is the best way
-       to integrate it into the C++ framework of the BeOS.
-       As of this second port, the mesa accelerated 3Dfx driver
-       is also supported.
-       The TK and AUX are partially supported but somewhat unstable.
-       
-
-Installing the library
---------------------------------------------------------
-
-       You'll have to build the library, and copy the files from
-       Mesa2.6/lib/ into your /boot/home/config/lib/ directory.
-
-
-Rebuilding the library
---------------------------------------------------------
-
-       Type 'make beos-ppc', 'make beos-x86', or 'make beos-glide' (for the accelerated version)
-       in the Mesa2.6/ directory to compile the library and the demos.
-       You will naturally need the unlimited linker.
-
-       For the x86 version you will have to play with the OSMesaCreateContext() parameters
-       as the OSMESA_BGRA used in the ppc version makes the colors screwy in the x86
-       version (damn little endian CPU....), see line 897 of src-tk/tkbeos.cpp and 
-       include/GL/osmesa.h for more info.
-
-       The glide version expects the lib3DfxGlide2X.so library to be in your
-       /boot/home/config/lib directory, and the glide/ directory (containing
-       at least the include/ directory) to be in the same directory as the
-       Mesa-2.6 directory. These files are in the glide.zip package, see the
-       changes section.
-
-
-BeOS demos
---------------------------------------------------------
-
-       I have converted some of the supplied demo into
-       BeOS specific code to show how to integrate
-       Mesa into your own projects. Look in the BeOS/
-       directory to test them.
-       NOTE that these demos directly use the OSMesa driver and
-       don't work with the glide version of the library. Looking
-       at src-tk/tkbeos.cpp it should be trivial to convert them
-       to an accelerated version.
-       For animation demos try the 'wave' and the 'logo'
-       demo:
-
-       wave demo keys:
-
-       c               Toggle contouring mode.
-       s               Toggle flat/smooth shade mode.
-       l               Toggle lighting mode.
-       d               Toggle depth checking mode.
-       a               Toggle spin mode.
-       
-       logo demo keys:
-       
-       LEFT    Rotate.
-       RIGHT   Rotate
-       UP              Move clipping plane.
-       DOWN    Move clipping plane.
-       Z       Translate.
-       z       Translate.
-       1       Use GL_POINT polygon mode.
-       2       Use GL_LINE polygon mode.
-       3       Use GL_FILL polygon mode.
-       p       Toggle polygon fill modes.
-       4       Use GL_NICEST for GL_POLYGON_SMOOTH_HINT.
-       5       Use anti-aliased polygon mode.
-       6       Use aliased polygon mode.
-       8       Toggle dither mode.
-       9       Toggle stipple polygon mode.
-       0       Toggle flat/smooth shading mode.
-       q       Disable cull mode.
-       w       Use front face cull mode.
-       e       Use back face cull mode.
-       r       Use clockwise front face mode.
-       t       Use counter-clockwise front face mode.
-       y       Use MSB first stipple pattern.
-       u       Use LSB first stipple pattern.
-       a       Use brick texture map.
-       s       Use checker texture map.
-       d       Disable texture map.
-       f       Use decal texture environment mode.
-       g       Use modulate texture environment mode.
-
-
-       
-How to compile the other demos in samples/ and demos/
---------------------------------------------------------
-
-       Just type 
-               
-               'mwcc demo.c -I../include ../lib/libMesaGL.so'
-
-       or something similar. I especially like the
-       isosurf.c in demos/ ...
-
-NOTE: R3 has broken the demos, due to some of the code in BeBuild.h. Either make sure that file isn't included or comment out the stuff in the GL section if you want to build the demos.
-
-Changes
--------
-
-       In the second release I (Duncan Wilcox) have reworked
-       the Makefiles a bit, and added out of the box support for
-       the 3Dfx drivers by David Bucciarelli. To use or build the
-       3Dfx versions, you'll need the Glide driver ported to BeOS
-       by Be, Inc. The file is called glide.zip, and currently is
-       at ftp://ftp.be.com/pub/samples/preview/graphics/glide.zip
-
-       I didn't have time to work on a BeOS version of GLUT, but
-       the version that Jake Hamby (jehamby@be.com) ported is probably
-       the best start, if you want to try and adapt it to Mesa. You
-       can find that at ftp://ftp.be.com/pub/beos_updates/developers/glut-3.5.zip
-
-       While it's a bit of a hack, you'll find that src-tk/tkbeos.cpp
-       provides most of the ideas to use Mesa in a BeOS application both for
-       off screen and accelerated rendering.*
-
-       The libraries have been split into four (libMesaGL.so, libMesaGLU.so, libMesatk.so,
-       and libMesaaux.so).
-
-       Tinic Uro did most of the work with the first BeOS port, at DR8.2 time.
-
-
-       *The tkbeos.cpp file has been updated slightly to fix some mouse problems.
-       Also the Makefiles have been updated to support x86 versions.
-
-ToDo
---------------------------------------------------------
-
-       - implementing a BeOS context.
-       - Better support of the TK and AUX package.*
-       - Speedups
-       - split into four shared libraries.**
-       - bugfixes
-       - a FXhack similar to the X driver, to use glide
-         acceleration in a window
-
-       *fixed, see Changes section above.
-       **Done.
-
-Author
---------------------------------------------------------
-
-       Send bugreports, comments and other stuff to:
-
-       Tinic Uro <5uro@informatik.uni-hamburg.de>
-
-       or
-
-       Duncan Wilcox <duncan@mclink.it>
-
-       or 
-       
-       Ed Silva <esilva@earthlink.net>
+
+                         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.
+
+
+----------------------------------------------------------------------