blob: 6d1e1f0e41b26659c0cc5491b192e8764f2caff8 [file] [log] [blame]
Brian Paul324af0b1999-01-30 04:00:31 +00001
Brian Paula822d1d1999-02-06 06:32:20 +00002 Mesa / BeOS Information
Brian Paul324af0b1999-01-30 04:00:31 +00003
4
5
Brian Paul473e51f2002-09-19 16:19:43 +00006* Introduction
Brian Paulee6ba021999-01-30 03:59:03 +00007
Brian Paul473e51f2002-09-19 16:19:43 +00008Mesa 4.1 features a driver for the BeOS. The driver implements
Brian Paula822d1d1999-02-06 06:32:20 +00009a clone of the BGLView class. This class, derived from BView, allows
10OpenGL rendering into a BeOS window.
Brian Paul473e51f2002-09-19 16:19:43 +000011The 4.1 BeOS driver is an update of Brian Paul's BeOS driver released in Mesa 3.1.
Brian Paulee6ba021999-01-30 03:59:03 +000012
Brian Paula822d1d1999-02-06 06:32:20 +000013Any application which uses the BGLView should be able to use Mesa
14instead of Be's OpenGL without changing any code.
Brian Paulee6ba021999-01-30 03:59:03 +000015
Brian Paul473e51f2002-09-19 16:19:43 +000016Since Be's OpenGL implementation (as of R5) is basically just the
Brian Paula822d1d1999-02-06 06:32:20 +000017SGI sample implementation, it's pretty slow. You'll see that Mesa
18is considerably faster.
Brian Paulee6ba021999-01-30 03:59:03 +000019
20
Brian Paulee6ba021999-01-30 03:59:03 +000021
Brian Paul473e51f2002-09-19 16:19:43 +000022* Source Code
Brian Paulee6ba021999-01-30 03:59:03 +000023
Brian Paul473e51f2002-09-19 16:19:43 +000024The source code for the driver is in Mesa-4.1/src/BeOS/ directory.
Brian Paula822d1d1999-02-06 06:32:20 +000025It's not 100% finished at this time but many GLUT-based demos are
Brian Paul808a0131999-03-03 02:34:04 +000026working. No optimizations have been made at this time.
Brian Paulee6ba021999-01-30 03:59:03 +000027
28
Brian Paulee6ba021999-01-30 03:59:03 +000029
Brian Paul473e51f2002-09-19 16:19:43 +000030* Compiling
Brian Paulee6ba021999-01-30 03:59:03 +000031
Brian Paul473e51f2002-09-19 16:19:43 +000032Requirements:
33 - gcc version 2.95.3 for BeOS
34 You can find it here: http://www.bebits.com/app/2157
35
36Move to the Mesa-4.x src sub-directory and then type "make -f Makefile.BeOS-R5".
37When it finishes the Mesa based libGL.so library for
38BeOS will be in the Mesa-4.x/src/obj.{x86|ppc}/ directory.
39
40To install it as Be's default libGL.so replacement, put it in your
41/boot/home/config/lib/ directory. All your GL/GLUTapps will use
42the Mesa based then.
43
44By default, it build a non-debug version library.
45The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target.
46Sorry, Mesa don't have ppc (Altivec) optimizations yet.
Brian Paulee6ba021999-01-30 03:59:03 +000047
48
Brian Paul473e51f2002-09-19 16:19:43 +000049* Example Programs
Brian Paulee6ba021999-01-30 03:59:03 +000050
Brian Paul473e51f2002-09-19 16:19:43 +000051Look in the Mesa-4.x/BeOS/ directory for one or two BGLView demo
Brian Paula822d1d1999-02-06 06:32:20 +000052programs. They should have been compiled along with the Mesa
53library.
Brian Paulee6ba021999-01-30 03:59:03 +000054
55
Brian Paul473e51f2002-09-19 16:19:43 +000056* GLUT
Brian Paulee6ba021999-01-30 03:59:03 +000057
Brian Paul473e51f2002-09-19 16:19:43 +000058A beta version of GLUT 3.7 port for BeOS can be found at
59http://anobject.com/jehamby/Code/Glut-3.7-x86.zip.
60
61There's is a 2.5 version in src-glut.beos/, too.
Brian Paul808a0131999-03-03 02:34:04 +000062The original distribution can be obtained from
Brian Paul7c2ce351999-02-11 03:52:24 +000063http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
Brian Paulee6ba021999-01-30 03:59:03 +000064
Brian Paul473e51f2002-09-19 16:19:43 +000065They are special version of GLUT adapted for the BeOS. I don't
Brian Paula822d1d1999-02-06 06:32:20 +000066believe Mark Kilgard's normal GLUT distribution includes BeOS
67support.
Brian Paulee6ba021999-01-30 03:59:03 +000068
Brian Paul808a0131999-03-03 02:34:04 +000069
Brian Paul473e51f2002-09-19 16:19:43 +000070* Special Features
Brian Paul7c2ce351999-02-11 03:52:24 +000071
72Mesa's implementation of the BGLView class has an extra member
73function: CopySubBufferMESA(). It basically works like SwapBuffers()
74but it only copies a sub region from the back buffer to the front
75buffer. This is a useful optimization for some applications.
76If you use this method in your code be sure that you check at runtime
77that you're actually using Mesa (with glGetString) so you don't
78cause a fatal error when running with Be's OpenGL.
79
80
81
Brian Paul473e51f2002-09-19 16:19:43 +000082* Work Left To Do
83
84BDirectWindow single buffering support is not implemented yet.
Brian Paul808a0131999-03-03 02:34:04 +000085
86Color index mode is not implemented yet.
87
88Reading pixels from the front buffer not implemented yet.
89
90There is also a BGLScreen class in BeOS for full-screen OpenGL
91rendering. This should also be implemented for Mesa.
92
93
94
Brian Paul473e51f2002-09-19 16:19:43 +000095* Old BeOS Driver
Brian Paulee6ba021999-01-30 03:59:03 +000096
Brian Paula822d1d1999-02-06 06:32:20 +000097Mesa 2.6 had an earlier BeOS driver. It was based on Mesa's Off-screen
98rendering interface, not BGLView. If you're interested in the older
99driver you should get Mesa 2.6.
100
101
102
Brian Paul473e51f2002-09-19 16:19:43 +0000103* BeOS and Glide
Brian Paula822d1d1999-02-06 06:32:20 +0000104
105Mesa 3.0 supported the 3Dfx/Glide library on Beos. Download Mesa 3.0
106if interested. Ideally, the 3Dfx/Glide support should be updated to
107work with the new Mesa 3.1 BGLView implementation.
108
Brian Paul808a0131999-03-03 02:34:04 +0000109The Glide library hasn't been updated for BeOS R4, to my knowledge, as
110of February, 1999.
111
Brian Paula822d1d1999-02-06 06:32:20 +0000112
113----------------------------------------------------------------------
Brian Paul473e51f2002-09-19 16:19:43 +0000114$Id: README.BEOS,v 1.7 2002/09/19 16:19:44 brianp Exp $