Much like Shape::collides() is equivalent to the more low-level
collision detection using operator%, the Shape::collision() returns
collision details similarly to operator/. Currently only Sphere/Sphere
and Sphere/Point collision is done, thus the dispatch is nearly empty.
In all other places (e.g. Math, SceneGraph), SomeClass<T>::Type is
always T. I spent twenty minutes figuring out what went wrong, so better
have this consistent.
Also update the test to check for these, as they apparently were tested
only indirectly through the MeshGLTest.
Basically a version of interleave() which takes existing buffer instead
of creating new zero-initialized one. The last bit needed for real
runtime usage.
Everything are now pure functions, no shared state, no useless functor
class wrapping. Still needed to wrap attribute count and stride
computation functions in struct to make proper overload resolution
working without the need to deinline the functions (they have cyclic
dependencies).
Returns list of _all_ extensions reported by the driver, even those that
are not supported in Magnum and also those that are marked as disabled
due to driver bugs. Usable mostly when doing fresh port to new platform
to discover possible new features.
The actual implementation was part of Context constructor (and now this
function is called instead). It is rather ugly because we need to take
care of both GL 2.1 and GL 3.0 (and also ES2 and ES3).
Do I really need to have everything uniquely prefixed with
uncomprehensible names to defend myself from headers that were made by
careless people two centuries ago?! Rage level +37.
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.