Roderick Colenbrander wrote:
On windows the opengl32.dll exports glBlendColor by default and as opengl32.dll is opengl 1.1 I thought that it was a core function. So you say that it is backed by GL_ARB_imaging. The problem is that basicly only Nvidia advertises it and the other drivers don't. The GL version could be detected but we don't like GL version checks. Vendors should still advertise GL_ARB_imaging for backwards compatibility if they do support 1.4 or higher but ATI and friends don't :(
They can't if they don't support the other sub-extensions of GL_ARB_imaging, ONLY the 3 blend extensions of GL_ARB_imaging are core 1.4. But if you only want to check for one extension, then I'd think that EXT_blend_color would be the obvious choice (because a driver probably really should announce support for that if it either supports ARB_imaging or is version 1.4).
from ARB_imaging is ok. If only either EXT_blend_minmax or
EXT_blend_subtract is supported, then glBlendEquation is supported, but only different modes are valid (FUNC_ADD, MIN, MAX for EXT_blend_minmax, FUNC_ADD, FUNC_SUBTRACT, FUNC_REVERSE_SUBTRACT for EXT_blend_subtract). But if all you care is that glBlendEquation is available, you should probably detect ogl 1.4, and EXT_blend_subtract (some cards only support EXT_blend_subtract but not EXT_blend_minmax), but really for correctness EXT_blend_minmax and ARB_imaging should be checked too.
Right now we only use ADD/MIN/MAX/SUBTRACT/REVSUBTRACT. For correctness we would need to check for EXT_blend_subtract aswell. Right now only EXT_blend_minmax is checked. A version check is more or less out of the question (Alexandre only accepts such things when it is really needed). We could wait till problems arise as wined3d will give some GL warnings then.
I'd just think if you want to make sure it's legal to call glBlendEquation but not the mode itself, then check for EXT_blend_subtract, not EXT_blend_minmax, as it's more widespread.
Roland