Vladimír Vondruš
65a2ced2a7
Make this compile and test cleanly with CORRADE_NO_ASSERT defined.
6 years ago
Vladimír Vondruš
56cade15ca
Primitives: added a wireframe icosphere.
6 years ago
Vladimír Vondruš
9661c55596
Primitives: hint that a solid strip cube can be made entirely in GLSL.
6 years ago
Vladimír Vondruš
b1f356cdfa
Primitives: clarify how primitives look.
6 years ago
Vladimír Vondruš
c01dc81d04
GCC 4.8, stay alive for a few more days please.
6 years ago
Vladimír Vondruš
2a88a885c1
Primitives: tangents in the plane primitive.
...
This turned the primitive from being fully defined at compile time to
being mostly dynamically allocated. Keeping just the positions+normals
case defined at compile time, and splitting the function into two
overloads so the extra code can be DCEd when people call the function
with no flags.
6 years ago
Vladimír Vondruš
1e04dbcaba
Primitives: add a sanity assert.
6 years ago
Vladimír Vondruš
b16861693a
Primitives: tangents in the 3D grid primitive.
6 years ago
Vladimír Vondruš
1b776e13bc
Primitives: tangent support in the 3D circle primitive.
6 years ago
Vladimír Vondruš
a099a57464
Primitives: implement tangent generation in spheroid primitives.
6 years ago
Vladimír Vondruš
ca5beb432b
Primitives: make internal spheroid generator less rigid.
...
To allow introducing tangents and possibly other attributes. This means
the attribute data isn't defined at compile time anymore, but it
would make further additions too annoying to do due to combinatorial
explosion of all variants.
6 years ago
Vladimír Vondruš
ff3e771231
Primitives: use the exported growable allocator from Trade.
...
So the primitives can be used inside plugins without the risk of
dangling deleter pointers.
6 years ago
Vladimír Vondruš
1b21e4e7ba
Primitives: switch to an enum set for texturable primitives.
...
Making room for GenerateTangents in 3D, and keeping the 2D ones
consistent with 3D. Also renamed GenerateTextureCoords to
GenerateTextureCoordinates in the remaining places to be consistent with
naming in the rest of the APIs.
6 years ago
Vladimír Vondruš
dedf36941c
Primitives: hint on MeshTools for converting into indexed meshes.
6 years ago
Vladimír Vondruš
06b82755ad
Primitives: use compile-time attribute definitions where possible.
...
Now possible in all cases, except for grid, where the combination count
is too large to be practical, even more so with the introduction of
tangents in the future.
6 years ago
Vladimír Vondruš
eb98f13b72
Primitives: use offset-only attribs for Line and Gradient.
...
One less allocation for each.
6 years ago
Vladimír Vondruš
0657d6073d
Primitives: MSVC 2015 is this what makes you throw up?
6 years ago
Vladimír Vondruš
b203924355
GCC 4.8, happy to see you're still around, causing problems.
6 years ago
Vladimír Vondruš
a68946df5b
Primitives: port tests and related tools away from MeshDataXD.
...
Improving the tests a bit for trivial primitives to ensure the attribute
layouts are correct, not just counts.
6 years ago
Vladimír Vondruš
c8de337c06
Primitives: port away from MeshDataXD.
...
The internals don't use any std::vector anymore, only the icosphere
needs an std::unordered_map to do duplicate removal. Additionally, the
most simple primitives are now simply views on constant data,
being completely zero-allocation.
On a Mac this resulted in the dylib going down from 1.5 MB to 418 kB in
Debug, and from 129 kB to 90 kB in Release. Quite nice.
The tests are not ported away from MeshDataXD yet as I want to ensure
the behavior is *exactly* as before.
6 years ago
Vladimír Vondruš
1c74a87f24
Primitives: use a more efficient duplicate removal approach in Icosphere.
...
It's still extremely bad, but at least something.
6 years ago
Vladimír Vondruš
bdd270368d
Primitives: make the Icosphere test less awful.
...
This also doubles down as a regression test for the subdivide() and
removeDuplicates() mesh tools.
6 years ago
Vladimír Vondruš
6b2f4711b4
Primitives: fix an assertion in uvSphereWireframe().
...
Everything I do these days is a potential breakign change.
7 years ago
Vladimír Vondruš
a920722839
doc: label deprecated APIs and stuff new since 2019.10 with version info.
...
Should make new things more discoverable, avoid confusion when a
documented API isn't there and reduce the need for maintaining multiple
separate versions of the docs.
7 years ago
Vladimír Vondruš
96ea050a74
Primitives: fix a missing face in cylinder and cone primitives.
7 years ago
Vladimír Vondruš
8c902bec4d
Primitives: make Cone and Cylinder tests more maintainable.
...
I got some bugs there, need to fix them.
7 years ago
Vladimír Vondruš
023c3811c8
Primitives: doc++
7 years ago
Vladimír Vondruš
52ff540407
Primitives: fix and make gradient function params consistent.
7 years ago
Vladimír Vondruš
8ef975616f
Primitives: textured circle primitive.
7 years ago
Vladimír Vondruš
8c439a2b66
Primitives: use container comparison for circle test.
...
For some reason this was the only primitive where it wasn't done yet.
7 years ago
Vladimír Vondruš
8f94a7717f
Primitives: constify.
7 years ago
Vladimír Vondruš
3967116dee
Primitives: use Math::sincos() where appropriate.
7 years ago
Vladimír Vondruš
6c434c7b21
Primitives: remove cruft deprecated in 2018.04.
7 years ago
Vladimír Vondruš
2149f7b869
Wrap all tests in unnamed namespaces.
...
This makes the compiler warn about test cases that aren't ever used,
which is a good thing.
7 years ago
Vladimír Vondruš
e6b7aa12fa
Updated copyright year.
7 years ago
Vladimír Vondruš
0793d31d2b
Primitives: new gradient primitive.
8 years ago
Vladimír Vondruš
e7d99a1190
doc: convert primitive renderings to proper sRGB and HiDPI.
...
Quick detour that took me quite an extreme amount of time to finish.
8 years ago
Vladimír Vondruš
4acfa8c197
Primitives: a better line primitive.
8 years ago
Vladimír Vondruš
2f1c1aaefd
Primitives: document how the grid is oriented.
8 years ago
Vladimír Vondruš
2a089f0e35
Primitives: these two were missing from 100% code coverage.
8 years ago
Vladimír Vondruš
994b9b22ba
CMake: properly specify IDE folders for everything.
8 years ago
Vladimír Vondruš
7cd44c1437
Primitives: exclude trivial deprecated APIs from code coverage.
...
Back at 100% coverage.
8 years ago
Vladimír Vondruš
920db7aa73
Split the Trade library out.
8 years ago
Vladimír Vondruš
8c74f4b2db
Primitives: added grid3DSolid() and grid3DWireframe().
8 years ago
Vladimír Vondruš
8662919a2b
Primitives: new solid and wireframe cone primitive.
8 years ago
Vladimír Vondruš
ab32742b55
Primitives: make it possible to have wireframe hemisphere with one ring.
...
Will be tested in the following commit.
8 years ago
Vladimír Vondruš
c33fd4d9c6
doc: show how each primitive looks.
8 years ago
Vladimír Vondruš
ae8db0471f
Primitives: 3D circle primitive.
8 years ago
Vladimír Vondruš
c139e0384d
Primitives: get rid of useless classes.
...
All functionality is now available through free functions. The classes
are now just deprecated wrappers and/or typedefs and will be removed in
some future release.
8 years ago
Vladimír Vondruš
013f1273f9
Primitives: max out the code coverage.
8 years ago