It seriously breaks RectangularMatrix::from() and related functions in
subclasses and I don't have better solution for that yet. Hope newer
GCCs fix this issue, because compiling with this option is a way to
unoptimized hell.
The breakage can be seen when Physics::AxisAlignedBox::applyTransformation()
is called in loop from Physics::ObjectShapeGroup::setClean() (e.g.
three AABBs in the group). Result is that the transformation doesn't get
applied at all.
I tried also these solutions without success:
* Reimplementing from() to return (const) copy, so it doesn't alias
original type (warnings suddenly disappear, but the problem persists).
* Using __attribute__((__may_alias__)) on RectangularMatrix - doesn't
help at all (even the warnings remain).
* Using __attribute__((__may_alias__)) on all vector/matrix classes -
causes compilation failure (non-matching function declarations and
definitions due to vector/matrix parameters). Also tried to add it to
all forward-declarations and typedefs, but it causes only a few more
warnings about ignored attribute.
Apparently input events can be processed during buffer swapping. Now
asserting that callback from buffer swap is not called during input
event processing (which shouldn't, as both functions should be called in
the same thread).
When resource access later fails on not loaded data, zero key in
assertion message might hint that the Resource instance was
default-constructed and thus not loaded at all.
NaCl and SDL2 are now hotswappable again without any unimplemented or
superfluous function parameters.
Also added missing EnumSet operators for Modifiers.
In SDL they are only for keyboard events and there is no support
for mouse modifiers like in X. Also reordered the enum in
AbstractXApplication to make it consistent.