GLSL matrices are stored in column-major order while GL_ARB_vertex/fragment_program
use row-major. So, need to use STATE_MATRIX_TRANSPOSE for built-in matrices.
Unfortunately, this means that the expression M * V isn't very efficient since we
need to extract the rows out of M. And that's the typical expression for vertex
transformation: gl_ModelViewProjectionMatrix * gl_Position.
Solve this inefficiency by looking for M*V expressions and replacing them
with V*Transpose(M).
Also, add support for GLSL 1.20's MatrixTranspose, Inverse and InverseTranspose
matrices.
glMaterial changes the current specular exponent or glLight changes
the intensity distribution of the light, but _mesa_update_state doesn't
update the corresponding light table. So they must be updated at this time.
-include missing definitions
-add files to compile
-remove files from compile list which are removed from the repositry
-add support for vbo
new file: src/mesa/vbo/descrip.mms
modified: src/mesa/descrip.mms
modified: src/mesa/drivers/osmesa/descrip.mms
modified: src/mesa/drivers/x11/descrip.mms
modified: src/mesa/swrast_setup/descrip.mms
modified: src/mesa/tnl/descrip.mms
Use _mesa_reference_framebuffer() and _mesa_unreference_framebuffer() functions
to be sure reference counting is done correctly. Additional assertions are
done too. Note _mesa_dereference_framebuffer() renamed to "unreference" as
that's more accurate.
Based on a patch by Panagiotis Papadakos.
Among other things, this makes sure the framebuffer object associated with the
drawable has the correct size when _mesa_make_current is called, so the default
viewport is set up correctly.
Also update radeon->lastStamp in radeonSetCliprects.