modes first then attributes since the it was cause a display bug on some
datesets. It seems that the modes needs enabling before glMaterial's
take affect, at least on the NVidia drivers under Windows and Linux.
The OpenGL reference guide doesn't mention any dependancy so I'm not
sure what the official line is. Some other OpenGl attribute and modes
need to be applied in that order according to the blue book, however,
drivers, at least the NVidia drivers seem require the opposite. This may raise
the spectra of before and after mode applies, but this will require extra
support in osg::State and osg::StateAttribute, and would have to be handled
on a per attribute basis, and possibly different of each platform. Yuck.
attributes are now set first, then modes. This is keep consistent with
the setting of glColorMaterial and glEnable(GL_COLOR_MATERIAL) as specfied
in OpenGL documentation.
these global attributes are created by cloning any attributes which are
applied during rendering, the clone in a shallow copy, which will set up
default valus for that attribute. This should prevent attribute bleed
from one stateset to the next when the global StateSet doesn't contain
an attribute used within the scene graph.