If only one *Application or Windowless*Application header is included,
the class is aliased to Application or WindowlessApplication to simplify
porting.
Headers gl2.h and gl2ext.h shipped with NaCl are different to the
official ones, which is causing linker issues, thus using NaCl's own
gl2.h. They are otherwise similar, thus it should cause no compatibility
issues.
On the other hand, gl2ext.h shipped with NaCl is slightly outdated with
some recent extensions missing. We are including the NaCl's one and then
the official one over it (undefining the include guard). The symbols are
guarded also by extensions, so it should cause no conflicts.
Convenience aliases to variables related to one particular *Application
component, defined if and only if exactly one *Application component is
requested and found. Meant to be used to simplify porting when each
platform uses different *Application library.
Moved them to `OpenGL/` subdirectory, allowing them to be included
explicitly with e.g. <OpenGL/GLES2/gl2ext.h> overriding the system
<GLES2/gl2ext.h> header. Our versions of the headers are thus now
explicitly included in `OpenGL.h`, but they can be also included using
no-prefix path if no system version is available. It might break some ES
platforms, they will be fixed when found.
The headers are now installed into `Magnum/OpenGL` (not into any
artificial `external` directory). Now also installing GLES2 headers for
OpenGL ES 2 (previously ES3 headers were installed for both ES2 and
ES3).
Being consistent with all other options, all of them are both
unprexfixed and prefixed in CMake (and then only prefixed versions are
saved into `magnumConfigure.h` file).
The compiler doesn't like list-initialization of array of classes
(RectangularMatrix constructors). It is perfectly legal C++11 and both
GCC 4.7 and Clang accept it without notice.
It does too much harm on GCC 4.6 (all these constexpr constructors are
not constexpr now). We can disable that `-pedantic` warning for GCC 4.6
only and live with that.
This reverts commit 2d92d497d9.
Awesome bug. In GCC 4.6 it throws plenty of ungoogleable `-pedantic`
warnings and in GCC 4.5 it fails directly with "error: bad array
initializer". Fallback to initialization using for-cycle.
Hello, performance? You can go home now.
Comparing squared length to 1 is not sufficient to compare within range
[1 - epsilon, 1 + epsilon], as e.g. Quaternion with dot() = 1 + 1e-7
when converted to matrix has column vectors with dot() = 1 + 1e-6, which
is just above 1 + epsilon. Thus it's needed to compare sqrt(dot()) in
range [1 - epsilon, 1 + epsilon] or dot() in range [1 - 2*epsilon +
epsilon^2, 1 + 2*epsilon + epsilon^2]. Because epsilon^2 is way off
machine precision, it's omitted, thus dot() in all isNormalized()
implementations is now compared this way:
abs(dot() - 1) < 2*epsilon;