Implement GLX_SGI_make_current_read for tdfx. Remove annoying debug
printf in tdfxSwapBuffers. Updated a comment in drirenderbuffer.h to
note that the tdfx driver uses a flag that was previously only used by
s3v.
This code was tested with glxgears, wincopy, and manywin.
Via depth_test_pixels (swrast/s_depth.c), tdfxDDWriteDepthPixels can
be called with mask == NULL. Test for this condition in the places
where mask might be dereference. This matches the behavior of several
other functions in this file with a 'const GLubyte mask[]' parameter.
In 16-bit color modes the 3D driver was erroneously creating fbconfigs
with 16-bits of accumulation alpha. Since the 2D driver always
generates modes with zero bits of alpha, the lists of fbconfigs did
not match and warnings were generated by libGL.
Refactor savageXMesaSetBackClipRects and savageXMesaSetFrontClipRects
into a single new routine called savageXMesaSetClipRects. This allows
a few cleanups in the code.
Eliminate use of deprecated GetBufferSize interface. Keep framebuffer
state associated with the read-drawable and the draw-drawable up to
date.
Tested with progs/demos/wincopy.
Discontinue use of the old GetBuffeSize interface. Track both the
current read-drawable and the current draw-drawable. After moving
some context state to via_rednerbuffer, GLX_SGI_make_current_read can
be enabled.
The extension works, but the wincopy test prodcues a black window for
the destination window. After messing around with the window and
looking at the code, I believe the problem is in the handling of
buffer swap requests on a drawable that isn't the current draw-drawable.
There is a bug somewhere in fragment program.
tri-cos and tri-sin show the bug. Also we
should not emit multiple time the same constant.
for sin,cos,lit have to fix that.
reduce duplicated code.
Finish up _program_ReadUniform() for non-float types.
Implement _mesa_GetUniformivARB().
Simplify the _program_WriteUniform() function a bit.