2015-02-25 9:42 GMT+01:00 Henri Verbeet hverbeet@gmail.com:
On 24 February 2015 at 13:38, Matteo Bruni mbruni@codeweavers.com wrote:
Unused.
But they should be used by ffp_fragment_get_caps(), since set_tex_op() uses that functionality.
It's not all that clear and nice. set_tex_op() really depends on GL_(ARB|EXT)_texture_env_combine, since it's always setting GL_TEXTURE_ENV_MODE to GL_COMBINE (or GL_COMBINE4_NV) and using its knobs to set the texture color or alpha operation state (and those include the ADD setting for the COMBINE pname). There is actually no instance of GL_TEXTURE_ENV_MODE being set to GL_ADD in wined3d, which is the only addition in the GL_ARB_texture_env_add spec.
So TEXTURE_ENV_ADD is really unused AFAICS. We do always depend on GL_(ARB|EXT)_texture_env_combine and we're not exposing that dependency correctly. I'm not sure I want to spend much time on fixing that or introducing a fallback for the case where those extensions are missing. Maybe I should just add an early-exit branch in set_tex_op for the no *_texture_env_combine case, handling only the few settings supported in unextended OpenGL (which are MODULATE, SELECTARG1 and SELECTARG2 I think) and update ffp_fragment_get_caps() accordingly.