Files
third_party_mesa3d/docs
Marek Olšák e5c6a92a12 mesa: implement clamping controls (ARB_color_buffer_float)
Squashed commit of the following:

Author: Marek Olšák <maraeo@gmail.com>

    mesa: fix getteximage so that it doesn't clamp values
    mesa: update the compute_version function
    mesa: add display list support for ARB_color_buffer_float
    mesa: fix glGet query with GL_ALPHA_TEST_REF and ARB_color_buffer_float

commit b2f6ddf907935b2594d2831ddab38cf57a1729ce
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Tue Aug 31 16:50:57 2010 +0200

    mesa: document known possible deviations from ARB_color_buffer_float

commit 5458935be800c1b19d1c9d1569dc4fa30a97e8b8
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Tue Aug 24 21:54:56 2010 +0200

    mesa: expose GL_ARB_color_buffer_float

commit aef5c3c6be6edd076e955e37c80905bc447f8a82
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Thu Aug 26 18:12:34 2010 +0200

    mesa, mesa/st: handle read color clamping properly

    (I'll squash the st/mesa part to a separate commit. -Marek)

    We set IMAGE_CLAMP_BIT in the caller based on _ClampReadColor, where
    the operation mandates it.

    TODO: did I get the set of operations mandating it right?

commit 3a9cb5e59b676b6148c50907ce6eef5441677e36
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Thu Aug 26 18:09:41 2010 +0200

    mesa: respect color clamping in texenv programs (v2)

    Changes in v2:
    - Fix attributes other than vertex color sometimes getting clamped

commit de26f9e47e886e176aab6e5a2c3d4481efb64362
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Thu Aug 26 18:05:53 2010 +0200

    mesa: restore color clamps on glPopAttrib

commit a55ac3c300c189616627c05d924c40a8b55bfafa
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Thu Aug 26 18:04:26 2010 +0200

    mesa: clamp color queries if and only if fragment clamping is enabled

commit 9940a3e31c2fb76cc3d28b15ea78dde369825107
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Wed Aug 25 00:00:16 2010 +0200

    mesa: introduce derived _ClampXxxColor state resolving FIXED_ONLY

    To do this, we make ClampColor call FLUSH_VERTICES with the appropriate
    _NEW flag.

    We introduce _NEW_FRAG_CLAMP since fragment clamping has wide-ranging
    effects, despite being in the Color attrib group.

    This may be easily changed by s/_NEW_FRAG_CLAMP/_NEW_COLOR/g

commit 6244c446e3beed5473b4e811d10787e4019f59d6
Author: Luca Barbieri <luca@luca-barbieri.com>
Date:   Thu Aug 26 17:58:24 2010 +0200

    mesa: add unclamped color parameters
2011-03-29 12:04:55 +02:00
..
2008-09-21 11:00:44 -07:00
2005-05-05 14:18:31 +00:00
2007-09-05 10:04:37 -06:00
2005-01-20 03:55:10 +00:00
1999-07-20 00:35:22 +00:00
2005-01-20 03:55:10 +00:00
2010-03-01 20:54:20 +02:00
2011-01-10 11:50:35 +08:00
2005-01-20 03:55:10 +00:00
2005-05-05 14:18:31 +00:00
2005-05-06 22:17:24 +00:00
2006-02-22 15:50:57 +00:00
2006-11-18 16:44:30 +00:00
2004-03-25 01:42:41 +00:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2005-07-01 01:04:31 +00:00
2007-09-13 14:44:27 -06:00
2011-01-10 11:50:35 +08:00
2010-10-29 12:11:49 +08:00
2010-02-09 11:21:41 -07:00
2005-01-20 03:55:10 +00:00
2010-03-12 08:55:05 -07:00
1999-02-23 03:41:13 +00:00
2008-09-21 11:00:44 -07:00
2006-04-01 13:38:45 +00:00
1999-01-14 03:13:11 +00:00
2007-07-27 11:19:35 -06:00
1999-02-23 03:41:13 +00:00
1999-05-25 01:17:28 +00:00
2008-09-21 11:00:44 -07:00
2005-09-23 07:03:53 +00:00
2001-09-23 16:10:02 +00:00
2006-09-21 22:51:16 +00:00
2006-12-02 18:18:55 +00:00
2006-12-02 19:22:16 +00:00
2007-04-27 16:53:42 -06:00
2006-09-21 22:51:16 +00:00
2007-06-28 16:44:24 -06:00
2008-08-26 16:12:29 -06:00
2009-01-29 00:59:53 +00:00
2009-09-03 16:07:46 -06:00
2009-09-28 11:41:23 -07:00
2009-07-27 13:27:54 -06:00
2009-09-28 11:29:25 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2003-12-17 23:54:23 +00:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2008-09-21 11:00:44 -07:00
2005-01-20 03:55:10 +00:00
2011-02-16 17:05:08 -07:00
2006-09-21 22:54:53 +00:00
2011-02-16 17:05:08 -07:00
2007-05-04 18:26:41 -06:00
2007-04-18 09:07:56 -06:00
2005-01-20 03:55:10 +00:00
2005-01-20 03:55:10 +00:00
2006-08-30 22:04:09 +00:00
2006-09-21 22:51:16 +00:00

                        WindML Driver for Mesa 4.0


Requirements
------------

Tornado 2 + WindML, Cumulative Patchs are recommended. 
  
I suppose you have a valid WindML installation. Double buffer hardware
gives better performance than double buffer software so if you can
compile your WindML driver with this option, just do it. I/O
redirection is adviced in target server.


Tested on
---------

During the development, my main target was a CoolMonster:
- Video card: CT69000
- CPU: PENTIUM 266MHz

and my host a Windows NT + Tornado 2.


Installation
------------

1. Mesa sources must be in root directory (C:\)

2. Add the following line to your torVars.bat:
set MESA_BASE=C:\Mesa

OR copy the new torVars.bat in your bin path:
c:/Mesa/src/ugl/tornado/torVars.sample -> 
/mnt/nt/Tornado/host/x86-win32/bin/torVars (for example)

3. In a command prompt:
$ torVars
$ cd c:\Mesa
$ make -f Makefile.ugl CPU=PENTIUM

Take a long while...

5. Include all the files from ugldemos folder to build some downloadable
   application modules

4. Download UGL/Mesa object files on target

For example via the WindShell:
ld < c:\Tornado\target\lib\objMesaGL.o
ld < c:\Tornado\target\lib\objMesaUGL.o
ld < c:\Tornado\target\lib\objMesaGLU.o
ld < c:\Tornado\target\lib\objGLUTshapes.o
ld < c:\Tornado\target\lib\objMesaOS.o

You can put the previous lines in a file and use:
< filename

6. Download the application modules.

7. In WindShell, run:
-> uglalldemos

During the show some messages will appear, it provides some useful
information on key management.


Coding
------

Sample Usage:

In addition to the usual ugl calls to initialize UGL, (may be find an
input driver), you must do the following to use the UGL/Mesa interface:

1. Call uglMesaCreateContext() to create a UGL/Mesa rendering context,
   given the display format.

2. Call uglMesaMakeCurrent() to bind the UGL/Mesa buffers to an
   UGL/Mesa Context and to make the context the current one.

3. Make gl* calls to render your graphics.

4. Use uglMesaSwapBuffers() when double buffering to swap front/back buffers.

5. Before the UGL is destroyed, call MesaDestroyContext().

6. Before exiting, call if required uglEventQDestroy and then
   uglDeinitialize();

Limitations
-----------

I found the following limitations in my driver :
 - Color Indexed management is only in 8 bits
 - It's possible to mix UGL/OpenGL application with a software
   double buffer

Modifications
------------

New files in Mesa:
- Makefile.ugl
- rules.windmlmesa
- docs/README.UGL
- include/GL/uglmesa.h
- si-glu/Makefile.ugl
- src/Makefile.ugl
- src/ugl/torGLUTShapesInit.c
- src/ugl/torMesaUGLInit.c
- src/ugl/ugl_api.c
- src/ugl/ugl_dd.c
- src/ugl/ugl_glutshapes.c
- src/ugl/ugl_line.c
- src/ugl/ugl_span.c
- src/ugl/ugl_tri.c
- src/ugl/uglmesaP.h
- ugldemos/*

Modified files in Tornado 2.0:
- c:\Tornado\host\x86-win32\bin\torVars.bat
rem Command line build environments
set WIND_HOST_TYPE=x86-win32
set WIND_BASE=C:\Tornado
set MESA_BASE=C:\Mesa
set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH%
- c:\Tornado\target\config\comps\VxWorks\01uglmesa.cdf
- c:\Tornado\target\h\GL\*

Todo
----
- GCC 2.96, ASM compilation

Thanks to:
----------

Precision Insight team for their great job around Mesa, XFree, and DRI.
Wind River Systems to take me as an intern.


Stephane Raimbault
<stephane.raimbault@windriver.com>
<stephane.raimbault@deesse.univ-lemans.fr>

July 24, 2001