As we are now using absolute includes, there is no need to prefix
everything with "magnum<Namespace>" etc. All generated configuration
files are renamed to configure.h and their path is included _before_
everything else to avoid accidental collisions.
Everything what was in src/ is now in src/Corrade, everything from
src/Plugins is now in src/MagnumPlugins, everything from external/ is in
src/MagnumExternal. Added new CMakeLists.txt file and updated the other
ones for the moves, no other change was made. If MAGNUM_BUILD_DEPRECATED
is set, everything compiles and installs like previously except for the
plugins, which are now in MagnumPlugins and not in Magnum/Plugins.
In next few commits AbstractFont will become plugin interface. Font
implementations are now in magnum-plugins repository. Removed all traces
of FreeType and HarfBuzz dependencies.
Makes it easier to disable parts of the code than with this. And this
would also not be future-proof:
defined(MAGNUM_TARGET_GLES) && !defined(MAGNUM_TARGET_GLES2)
The text will be rendered without all the nifty features like kerning
and it will most probably fail on everything non-latin, but HarfBuzz is
currently PITA on some systems.
HarfBuzz usage can be configured using USE_HARFBUZZ CMake option.
4.6 doesn't support `override` keyword, using preprocessor macro to
simply hide it. The compatibility mode must be explicitly enabled,
though, using GCC46_COMPATIBILITY CMake option.
It's pointless to have Corrade with compatibility enabled and Magnum
without, because even if it somewhat compiles, it won't link together.
Moreover, explicitly setting compatibility in Magnum while Corrade has
it already enabled is only maitenance burden.
Desktop OpenGL and OpenGL ES 2 support can be switched using CMake
TARGET_GLES option. All functionality not supported in ES is marked in
documentation.
If targetting OpenGL ES, GLES2/gl2.h is included instead of GLEW.
Mesh class now uses VAOs only in desktop OpenGL, in ES the buffers are
bound on each draw call.