The functions were there all the time, I just didn't try hard enough to
find them. The special keys now have different values (the lower 16 bits
are reserved for ASCII), but it is a source-compatible change.
Each class should now have *everything* needed in its documentation,
nothing is left out. Most of the text was taken from README in
magnum-bootstrap repository.
Make it less annoying to debug things on platforms which send all
standard output to /dev/hell without any easy way to override that. Yes,
I'm looking at you, Android.
There is no ES 2.5 or 3.01 and this way we can properly check for
garbage returned by `glGet(GL_VERSION_M*OR)` (e.g. version 2674.-2O8539
would pass here).
Currently named as "removed" until I find a word which is *even* amount
of characters shorter than "supported" ("disabled" is not and it looks
ugly). Also marked extensions that can't be supported in current GL
version with "n/a" instead of "---".
Previously the extensions were either disabled altogether (e.g. because
we don't have yet extension wrangler on ES) or had manually adjusted
minimal required versions to avoid issues on older versions (e.g.
ARB_explicit_attrib_location is known to give compiler errors when used
with GLSL < 1.50 on some drivers), both done basically at compile time
unrelated to actual hardware/driver used.
Now all the extensions are enabled exactly as the driver advertises them
(or when their core version is not larger than the context version) and
have minimal required versions as per specification. Given extension is
supported in given version when it is marked as such and its minimal
required version is not larger than the requested one. The extension
disabling is thus done by simply increasing the minimal required version
to larger value (or Version::None for disabling it for all versions).
Currently no such disabling is put into place, but the existing
workarounds scattered all over the place will be gradually converted to
this.
Simplified the code and tests by marking all extensions from previous
versions as supported instead of additional "shorthand" checking whether
extension's core version is supported. The check wasn't probably much of
a speedup, as it was just another branch. This was also buggy
previously, because when the extension would be reported as not being
supported in older versions, which is not what we want. Hopefully this
won't reintroduce the numerous issues with Mesa and OSX I had in the
past :-)
Also removed duplicate implementation of
Context::isExtensionSupported(), one overload is now calling the other.