If ARB_invalidate_subdata is not available, these functions do nothing,
instead of crashing on null pointer dereference. It results in more
convenient usage, enabling users to call them whenever they want,
improving performance on implementations which supports that.
Instead of having pair of functions for depth/stencil and color
attachments this is now solved using specialized class. It is now more
descriptive, as specifying color attachment is now done explicitly using
Framebuffer::ColorAttachment(2) instead of just `2`. Specifying "no
attachment" is now also done explicitly using
Framebuffer::DrawAttachment::None instead of `-1`.
Also updated related documentation.
* Error when function is missing return type (not just warning).
* Warn when functions in source don't have corresponding declarations
in header. In case that it is not an error they should be put in
anonymous namespace.
Would cause weird issues with state, it's better to just not allow it
and follow KISS principle than trying to implementing it. Also
crosslinked required function calls in documentation.
OpenGL 3.0 specification is awesomely confused with extensions. The ones
listed in specs don't have the complete functionality and references
to related ARB extensions are nowhere to be found.
* Added math equations to Quaternion, Vector and Matrix method
documentation.
* Removed confusing Quat*=Quat operator overload, as it isn't exactly
clear from which side the non-commutative multiplication is done:
Quaternion a;
a *= b; // eh?
a = a*b; // okay!
For similar reason this operator wasn't present in RectangularMatrix
either.
* Unified documentation of expected vector/quaternion normalization
state. Now it is not "assumed" but "expected", because failing to do
so results in assertion failure.