Vladimír Vondruš
55bd644c2d
Merge branch 'master' into compatibility
...
Conflicts:
src/Shader.cpp
13 years ago
Vladimír Vondruš
0c31f5dbe4
NaCl's newlib doesn't have std::to_string().
13 years ago
Vladimír Vondruš
7f51765c36
Oh yeah, coding while drunk.
...
F'ed up in c2a5919b5a .
13 years ago
Vladimír Vondruš
c1d82464bd
Merge branch 'master' into compatibility
13 years ago
Vladimír Vondruš
f78ac39ab6
Shapes: overlooked `typename`.
...
Spotted by good ol' GCC 4.4. Newer compilers don't bother with that
verbosity at all.
13 years ago
Vladimír Vondruš
79c0dc9550
Shaders: use Context::isVersionSupported() instead of ad-hoc solution.
...
Also removed redundant branching for ES.
13 years ago
Vladimír Vondruš
a629582c09
GCC 4.4 compatibility: no comparison operators for strongly typed enums.
13 years ago
Vladimír Vondruš
6ec472038b
GCC 4.4 compatibility: ambiguous std::to_string() call.
...
It shouldn't be. What is ambiguous in conversion from `unsigned long
int` to `unsigned long long int`?
13 years ago
Vladimír Vondruš
6e07f8e436
GCC 4.4 compatibility: defaulted non-inline function causes linker error.
...
Follow-up for 3f056ac3fd . In 4.5 at least
virtual functions were working, in 4.4 even they cause an error.
13 years ago
Vladimír Vondruš
627c74c603
GCC 4.4 compatibility: no explicit conversion operators.
13 years ago
Vladimír Vondruš
e69031b12c
GCC 4.4 compatibility: no std::declval here.
13 years ago
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