Vladimír Vondruš
8242a68e6a
SizeTraits, SizeBasedCall and relevant classes.
...
SizeTraits class provides suitable types for given data size at compile
time, SizeBasedCall can call suitable templated overload based on given
data size at runtime.
Also added meta classes Pow and Log for computing powers and logarithms
at compile time, usable mainly in conjunction with SizeTraits. Their
implementation is checked at compile-time using static_cast().
15 years ago
Vladimír Vondruš
e536c892c4
Added Math::pow() and Math::log() functions.
...
Math::pow() is templated on exponent, so it should be as fast as
possible (without recursion).
15 years ago
Vladimír Vondruš
e74168bb88
Added test for Math::deg() and Math::rad().
15 years ago
Vladimír Vondruš
be3dd97d0a
Renamed Math/{constants.h => Math.h}.
15 years ago
Vladimír Vondruš
4904e9b58e
Functions to get vertex and face count in MeshBuilder.
15 years ago
Vladimír Vondruš
8099511d12
Added implicit constructors for Mesh and IndexedMesh.
15 years ago
Vladimír Vondruš
8512bb9560
Removed superfluous DISABLE_COPY() in IndexedMesh (Mesh has it already).
15 years ago
Vladimír Vondruš
d0044b960e
Support for setting texture subdata.
15 years ago
Vladimír Vondruš
0d2f2c966f
Doc++
...
Updated and simplified Main page of documentation, finally fixed doxygen
warnings with @copydoc in Math namespace.
15 years ago
Vladimír Vondruš
08eefab310
Disable copying of AbstractTexture class.
15 years ago
Vladimír Vondruš
e9a98d76e7
Support for setting textures as uniforms in AbstractShaderProgram.
...
Also updated Texture documentation.
15 years ago
Vladimír Vondruš
715d9910a8
Support for texture layers.
15 years ago
Vladimír Vondruš
0407e8152b
New class for Cube map textures.
15 years ago
Vladimír Vondruš
24988ce520
Fixed wrong automagic texture target for 3D textures.
...
While GL_TEXTURE_2D == GL_TEXTURE_1D + 1, GL_TEXTURE_3D is something
absolutely different and cannot be computed like this. Now done via
AbstractTexture::DataHelper, which is cleaner and better readable.
15 years ago
Vladimír Vondruš
b924da57ad
Splitting non-templated things from Texture to AbstractTexture.
15 years ago
Vladimír Vondruš
0852e89fed
Fixed compiler warning.
15 years ago
Vladimír Vondruš
cc0bffbdc4
Support for rectangle textures, documentation updates.
15 years ago
Vladimír Vondruš
c51ea03b5b
Texture Filter and Mipmap enum refactoring.
...
Renamed the constants so they are better readable when passed to
setMinificationFilter(). Using self-documenting values for Mipmap enum,
added static_assert which checks their correctness.
15 years ago
Vladimír Vondruš
4a58fc9f0c
Added Texture.cpp with explicit specialization for all texture dimensions.
...
Non-inline functions which don't depend on another template moved to
Texture.cpp, inlined the rest.
15 years ago
Vladimír Vondruš
c0e8a92093
Better documentation for Texture, mainly about required function calls.
15 years ago
Vladimír Vondruš
8b8e97f54e
Store template parameter in Texture class for later retrieving.
15 years ago
Vladimír Vondruš
08c967a6ae
Fixed wrong target passed to glBindTexture.
...
WTF? How it is possible that it was working?
15 years ago
Vladimír Vondruš
b0ed6479df
Totally reworked Texture::setData() using TypeTraits.
...
Instead of large if() block for calling either glTexImage1D,
glTexImage2D or glTexImage3D the class now uses internal helper functor,
which should lead to shorter generated code and also prevent using
wrong dimension count.
15 years ago
Vladimír Vondruš
1080c2900e
Texture now allows user-specified target in addition to automagic.
15 years ago
Vladimír Vondruš
3c9f6681b9
Using TypeTraits in MeshBuilder.
...
Slightly reduced code size (removed repeated code), also ensuring that
the right (unsigned) type is used for indexing.
15 years ago
Vladimír Vondruš
9e92bbf265
Using TypeTraits in Mesh::bindAttribute(), largely reducing code size.
15 years ago
Vladimír Vondruš
3e3f004a1e
Added TypeTraits class for plain OpenGL types.
...
Will help with reducing repated code and avoids making mistakes with the
types.
15 years ago
Vladimír Vondruš
03289b18ac
Doc++
15 years ago
Vladimír Vondruš
3c1f5392e8
Useful functions for making angle entering less error-prone.
...
Both functions convert the value to radians at compile time. For
example deg(180.0f) is converted to 3.14f. Less intuitive than
user-defined literals (C++11 feature), but works everywhere.
15 years ago
Vladimír Vondruš
58ace7d678
Fixed errors with template two-phase lookup, discovered with GCC 4.7.
15 years ago
Vladimír Vondruš
47744eb799
Added plugin include and plugin install dirs to FindMagnum.cmake.
15 years ago
Vladimír Vondruš
0c262dc0bd
Removed DISABLE_COPY() macro, as it is already in Corrade.
15 years ago
Vladimír Vondruš
8555475807
Support for printing Matrix and Vector to debug output.
...
Added tests for Matrix3, Vector2 just to be sure that debug output works
also there.
15 years ago
Vladimír Vondruš
7ffe994369
Include Corrade headers.
15 years ago
Vladimír Vondruš
614373e1af
Magnum now depends on Corrade.
...
Corrade will provide necessary things like plugin management and many
other useful utilities.
15 years ago
Vladimír Vondruš
f40d9f19a5
Better documentation for AbstractShaderProgram.
15 years ago
Vladimír Vondruš
b13fe66337
Moved examples to separate repository.
15 years ago
Vladimír Vondruš
80a10c9e6c
Doc++
15 years ago
Vladimír Vondruš
5556b75e88
Doxyfile update.
15 years ago
Vladimír Vondruš
5d56e993a8
Bind default Vertex Array Object on initialization.
...
According to OpenGL specifications no default VAO is bound
automatically, so without that it shouldn't work. The reason why it was
working for me on NVidia was a driver bug, which is now fixed in recent
drivers (280.xx, maybe) if using Core OpenGL.
15 years ago
Vladimír Vondruš
32a7f6d082
New class Math::GeometryUtils.
...
GeometryUtils::intersection() computes intersection of a plane and a
line.
15 years ago
Vladimír Vondruš
b0eef16fa9
Non-const accessors to MeshBuilder data, allowing direct modification.
15 years ago
Vladimír Vondruš
b27d5efc04
Propagated dot product operator to Vector specializations.
...
Otherwise GCC doesn't see the operator.
15 years ago
Vladimír Vondruš
459e6f868e
Total rewrite of slow MeshBuilder, cleanMesh() is now usably fast.
...
On 5-subdivided icosphere it performs 600 times better than previous
implementation.
15 years ago
Vladimír Vondruš
79aabfc0cc
Store template parameters in Vector class for later retrieving.
15 years ago
Vladimír Vondruš
df56ecc496
Magnum now uses C++11 features.
15 years ago
Vladimír Vondruš
8c004ef77d
Getters for near and far camera clipping plane.
15 years ago
Vladimír Vondruš
3b588e1950
Benchmark for MeshBuilder::subdivide() and cleanMesh().
...
Amazingly slow code.
15 years ago
Vladimír Vondruš
c56453cb37
Added function MeshBuilder::subdivide().
...
Argument is function or functor which does interpolation between two
adjacent vertices.
15 years ago
Vladimír Vondruš
c7b331d100
(Ahem...) Happy New Year!
15 years ago