Functions for setting 2D subimage of 3D texture / 1D subimage of 2D
texture introduced in 728ddb19a3 weren't
probably tested at all, as they are ambiguous overloads.
Now using std::enable_if, which works.
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.
Some functions need to return "invalid ID", which in case of size_t
cannot be -1.
Also the plugins should behave the same in 32/64bit systems, so the type
should be the same for both.
* CMAKE_SHARED_LIBRARY_CXX_FLAGS is empty here, caused CMake errors.
* CMake's OBJECT target has a bug that it doesn't define target_EXPORTS
as with other library targets, so it's needed to define it manually.
It also fixes empty flags issue.
* Visibility headers weren't updated for OBJECT targets, they now also
catch *Objects_EXPORTS defines.
According to OpenGL specification the sampler uniform takes only texture
layer and not any particular texture. In OpenGL 4.2 it is possible to
explicitly specify desired texture layer in the uniform, so I suppose
it's desired to have shader with fixed texture layers and on the other
hand be able to bind texture to any layer, not only one -- the exact
opposite of how it was in Magnum before.
The shader should now specify in its public API which texture is on
which layer and explicitly set the layer uniforms upon construction. All
setUniform() functions taking textures as argument were thus removed, as
they confuse things a lot.
The textures now have bind() function which takes layer as argument, so
it's now sufficient to only bind the texture before drawing the mesh
without messing with sampler uniform.
While namespaces act for hierarchy, modules are something like "tags" -
usable when you want to check related classes of e.g. CubeMapTexture.
Not sure how to name module for Math and Physics namespaces and
Contexts/Trade, though.
* All pages are now named with lowercased letters with dashes between
letters.
* Added coding style guidelines.
* Extended building documentation with guide how to download Magnum.