Vladimír Vondruš
5f29207114
Merge branch 'master' into compatibility
13 years ago
Vladimír Vondruš
c253fa74d3
Shapes: simplified collision dispatch implementation with macro.
13 years ago
Vladimír Vondruš
b8b6b63919
SceneGraph: use `virtual` where it hurts less.
...
Having `virtual` destructor in less templated base is better than having
it repeated in five times more subclass specializations.
13 years ago
Vladimír Vondruš
392dc54635
Moved BufferTextureFormat enum before the class.
...
Just to make merging into the compatibility branch easier.
13 years ago
Vladimír Vondruš
c4ab9e461f
GCC 4.5 compatibility: can't `default` an `explicit` declaration.
13 years ago
Vladimír Vondruš
3f056ac3fd
GCC 4.5 compatibility: defaulted non-inline function causes linker error.
13 years ago
Vladimír Vondruš
ead852b102
GCC 4.5 compatibility: no forward enum declarations.
13 years ago
Vladimír Vondruš
6a91e8f14f
GCC 4.5 compatibility: no range-based for.
13 years ago
Vladimír Vondruš
878343ffca
Merge branch 'master' into compatibility
13 years ago
Vladimír Vondruš
834d68945e
GCC 4.6 compatibility: weird name conflicts. WTF.
13 years ago
Vladimír Vondruš
d23942f1bc
Fixed comma at the end of enumeration list.
13 years ago
Vladimír Vondruš
a9eb5509ef
Merge branch 'master' into compatibility
...
Conflicts:
src/AbstractFramebuffer.h
src/Context.cpp
src/Context.h
src/Framebuffer.h
src/Math/Angle.h
src/Math/Complex.h
src/Math/Matrix3.h
src/Math/Matrix4.h
src/Math/Quaternion.h
src/Math/RectangularMatrix.h
src/Math/Unit.h
src/Math/Vector.h
src/Math/Vector2.h
src/Math/Vector3.h
src/Math/Vector4.h
src/MeshTools/Clean.h
src/Physics/AbstractShape.h
src/Physics/Test/ShapeGroupTest.cpp
src/Physics/Test/ShapeTestBase.h
src/ResourceManager.h
src/SceneGraph/DualComplexTransformation.h
src/SceneGraph/DualQuaternionTransformation.h
src/SceneGraph/FeatureGroup.h
src/SceneGraph/MatrixTransformation2D.h
src/SceneGraph/MatrixTransformation3D.h
src/SceneGraph/Object.h
src/SceneGraph/RigidMatrixTransformation2D.h
src/SceneGraph/RigidMatrixTransformation3D.h
13 years ago
Vladimír Vondruš
b9a72bd3d1
Shaders: ported MeshVisualizer to not require geometry shader.
...
Wireframe width and smoothness isn't ported yet, because I don't fully
understand the behavior of standard derivatives in fragment shader.
13 years ago
Vladimír Vondruš
9d1d4b5ef1
Properly number shader sources.
...
Previously the sources were numbered 1, 3, 5 etc., which is wrong.
13 years ago
Vladimír Vondruš
64b00278b8
No need to add `#line` directive also before `#version` line.
13 years ago
Vladimír Vondruš
1701f1c42f
MeshTools: added duplicate() utility for creating non-indexed array.
13 years ago
Vladimír Vondruš
f4fdbd2b2d
MeshTools: this can be moved instead of copying.
13 years ago
Vladimír Vondruš
1c32119058
MeshTools: renamed clean() to removeDuplicates().
13 years ago
Vladimír Vondruš
915d49cc7d
MeshTools: some cleanup.
13 years ago
Vladimír Vondruš
cabbc5d858
Allow movement of AbstractShaderProgram.
13 years ago
Vladimír Vondruš
77093a9b65
SceneGraph: fixed copypaste error.
13 years ago
Vladimír Vondruš
d969a9a162
Adapted to Corrade changes.
13 years ago
Vladimír Vondruš
12f9666321
Missing space in shader compiler output message.
...
Missed out when reworking in 6904b38b13 .
13 years ago
Vladimír Vondruš
69a5c2f06f
Buffer data queries are not available in OpenGL ES.
...
Similarly to texture image queries.
13 years ago
Vladimír Vondruš
7b0f762683
Added and fully implemented OES_standard_derivatives extension.
13 years ago
Vladimír Vondruš
8aab09a10c
Slightly reordered and crosslinked Renderer functions.
13 years ago
Vladimír Vondruš
980cc48642
SceneGraph: extracted CachedTransformation[s] enum out of AbstractFeature.
...
Less typing, less confusion.
13 years ago
Vladimír Vondruš
3f9d449f58
Math: fix compilation with Clang.
...
It seems that with Clang you cannot split declaration and definition of
`constexpr` function. These should be as short as possible anyway, thus
it is non-issue.
13 years ago
Vladimír Vondruš
150a583c3d
SceneGraph: typedef MatrixType to avoid those horrible declarations.
13 years ago
Vladimír Vondruš
1071a251cd
SceneGraph: make public Object API non-virtual too.
...
Calling functions directly on Object will result in non-virtual calls,
calling functions on AbstractObject will result in virtual calls. Also
removed now unneeded "hacks" like `sceneObject()` and properly hiding
unsafe functions taking `AbstractObject*` with safe functions taking
`Object*`. Also hide `isScene()` from public documentation, as it is
sort-of hack too.
13 years ago
Vladimír Vondruš
330794d710
Documentation fixes.
13 years ago
Vladimír Vondruš
3fc7ccafe5
SceneGraph: don't use virtual calls when setting transformations.
...
Until now, all calls to e.g. `Object::translate()` were virtual, which
is _very_ bad for performance. The virtual call is only needed when
setting the transformation via some interface, e.g.
`AbstractTranslationRotation3D`, as the caller doesn't know which
transformation implementation is used.
Now all public-facing transformation methods are inline non-virtual
functions, which are in most cases calling directly the transformation
implementation. In `Abstract*` transformation interfaces these functions
call private virtual `do*()` implementations, which are (re)implemented
in subclasses, but aren't used anywhere except when transforming
directly through the `Abstract*` interfaces. This should have good
impact on performance when doing many transformations in every frame
(although I can't verify it anywhere, as I don't have any significantly
large animated demo). Except of course when doing it through the virtual
interfaces.
As the public-facing transformation methods are now non-virtual, there
are now no "covariant return" issues and they can now return proper
`Object<*Transformation*>` type instead of just `*Transformation*`,
which makes full non-WTF method chaining possible:
Object2D* obj2;
obj2->translate({0.5f, -1.0f}) // Transformation method
->setParentKeepTransformation(obj1); // Object method
Or even this:
Object2D* obj = (new Object2D)->rotate(-15.0_degf);
13 years ago
Vladimír Vondruš
f7aa2c05a6
Deinlined heavy functions and removed redundant `inline` everywhere else.
13 years ago
Vladimír Vondruš
d3c37a3962
SceneGraph: removed redundant `inline` keyword.
13 years ago
Vladimír Vondruš
345abcc7ba
Text: removed redundant `inline` keyword.
13 years ago
Vladimír Vondruš
777b406840
Trade: removed redundant `inline` keyword.
13 years ago
Vladimír Vondruš
ebf13678dc
Shapes: removed redundant `inline` keyword.
13 years ago
Vladimír Vondruš
4f82053058
Shaders: removed redundant `inline` keyword.
13 years ago
Vladimír Vondruš
72e83c4f49
Platform: inline/virtual optimizations.
...
Removed redundant `inline` keyword, changed public (pure) virtual
destructors to protected nonvirtual ones.
13 years ago
Vladimír Vondruš
5bf61ceb74
*Tools: deinlined heavy functions, removed redundant `inline`.
13 years ago
Vladimír Vondruš
06a4e297bc
Math: deinlined heavy functions, removed redundant `inline`.
...
Also fixed unary RectangularMatrix::operator-() and Vector::operator-()
documentation (was stating that the operation is done in-place, which is
impossible.
13 years ago
Vladimír Vondruš
ae81e729c9
Added TODO.
13 years ago
Vladimír Vondruš
d83234d214
Don't build magnum-info by default.
...
Causes more pain than solves (i.e. all platforms other than
non-embedded Linux fail because no windowless application exists yet).
13 years ago
Vladimír Vondruš
5b54b07210
Added Buffer::size(), Buffer::data() and Buffer::subData() queries.
13 years ago
Vladimír Vondruš
5b2484cc2c
Context: use fully qualified name in macro.
...
So the macros are usable also when there is no `using namespace Magnum`.
13 years ago
Vladimír Vondruš
db05553e65
Math: another C++14 todo :-)
13 years ago
Vladimír Vondruš
db71a23e3c
Bring whole Corrade namespace into Magnum namespace.
...
These projects are tightly interconnected anyway, this means a lot less
typing (yay!).
13 years ago
Vladimír Vondruš
12a985526d
Adapted to Corrade changes.
13 years ago
Vladimír Vondruš
ca38c015f0
Refactored Buffer internals to follow GL naming conventions.
...
Similar reasoning as in 4a9b0b36ec .
13 years ago
Vladimír Vondruš
3ada0d8d1d
Added Renderbuffer::setStorageMultisample().
13 years ago