Currently Extensions3D has several API calls whose signatures are wrong or confusing. For instance ensureEnabled() requires that the passed extension be supported (as indicated by supports()). But it says nothing about the consequences of violating that rule. In the implementation in Extensions3DOpenGL.cpp it doesn't even check if building for MAC and asserts otherwise. The call would be better if it were simply enable() and returned a boolean. False would indicate that the extension was not supported and therefore not enabled. Then the caller can take the appropriate action. There are also several API calls, such as "bool supports(const String&)" which should be const.
It looks like a valid work still ( simplifying these APIs.. ) @kbr please advice if I can take it.
Please do. I'll unassign myself.