Vladimír Vondruš
dd07145fa2
GL: add a GL::AbstractShaderProgram::maxGeometryOutputVertices() query.
6 years ago
Vladimír Vondruš
99bc8deaf0
GL: reorder tests to match execution order.
6 years ago
Vladimír Vondruš
e455a6731a
GL: add a NoCreate Shader constructor.
...
It wasn't there because I thought it was not needed. I need it now.
6 years ago
Vladimír Vondruš
9bb590280a
GL: keeping copy but deleting a move is ... just wrong.
...
I blame my 2013 self who didn't have so clear idea about move semantics
yet.
6 years ago
Vladimír Vondruš
db16201fbe
GL: support converting matrix VertexFormats to DynamicAttribute as well.
6 years ago
Vladimír Vondruš
e983a2a168
GL: make it possible to describe matrix attributes with DynamicAttribute.
...
Not sure why this wasn't done when originally implementing those.
6 years ago
Vladimír Vondruš
da323625b2
GL: rename Attribute::VectorCount to Vectors for consistency.
...
Deprecated alias kept for compatibility, as usual.
6 years ago
Vladimír Vondruš
e3fcf9db57
GL: support custom stride between vectors in matrix Attributes.
...
Needed so e.g. Matrix3x3s can have four-byte-aligned columns.
6 years ago
Vladimír Vondruš
19787a4282
GL: improve test coverage of the Attribute classes a bit.
6 years ago
Vladimír Vondruš
b7da1323c8
Minor cleanup.
6 years ago
Vladimír Vondruš
de9c289328
Adapted all code and doc snippets to GL library changes.
6 years ago
Vladimír Vondruš
32d49db402
GL: mesh.draw(shader) -> shader.draw(mesh).
...
As usual, the old APIs are still present, but marked as deprecated.
Existing code is not updated yet to ensure I didn't break anything with
this.
This way it's much more intuitive and makes the code shorter and nicer
in many cases. Shaders are now also able to hide irrelevant
draw/dispatch APIs to avoid accidents.
6 years ago
Vladimír Vondruš
d096aa68cc
Add MeshPrimitive::Instances, Faces and Edges.
...
To support meshes that are not so GPU-friendly. And also meshlets at a
later point.
6 years ago
Vladimír Vondruš
c9634508e3
Enlarge MeshPrimitive to four bytes, allow wrapping impl-specific values.
...
And also handle them specially in GL::meshPrimitive() and
Vk::vkPrimitiveTopology().
6 years ago
Vladimír Vondruš
7d44bccd9b
Provide reliable mapping of VertexFormat to GL and Vulkan.
...
GL was missing a check whether given format is available on a target
(for example double types are not on ES), and for Vulkan we need something
similar to pixel format mapping as well.
6 years ago
Vladimír Vondruš
13c071a1aa
GL: allow to construct DynamicAttribute from VertexFormat.
6 years ago
Vladimír Vondruš
006790969a
Trade, MeshTools: deprecate MeshDataXD and everything that uses it.
6 years ago
Vladimír Vondruš
d46061b285
Make MeshPrimitive and MeshIndexType enums only 8bit.
...
Otherwise they take up too much space.
6 years ago
Vladimír Vondruš
7fd92c10dd
Reserve zero MeshPrimitive and MeshIndexType for invalid values.
...
Better for checking accidents, as picking a wrong primitive / index type
can lead to *serious* rendering issues. Similarly to a change done to
(Compressed)PixelFormat in 2019.10.
6 years ago
Vladimír Vondruš
4f0170ace4
GL: taking just an init list in MeshView::draw() was a stupid idea.
...
With just that, it wouldn't be possible to draw a runtime-dependent
amount of MeshViews (for example when culling them).
6 years ago
Vladimír Vondruš
7c25dc64f2
GL: reading from front buffer is n/a on WebGL, so don't expose that.
6 years ago
Vladimír Vondruš
af05883ec8
GL: doc++
6 years ago
Vladimír Vondruš
3f57130547
GL, Vk: future-proof mesh primitive and index mapping tables.
...
The test now explicitly goes through all generic names and checks that
the mapping doesn't blow up.
6 years ago
Vladimír Vondruš
b5d9e1cfb7
GL: improve a test.
...
It's tested everywhere but here so I guess it was some accidental
omission.
6 years ago
Vladimír Vondruš
5b61f64a50
doc: another day, another heap of Doxygen fun.
6 years ago
Vladimír Vondruš
946c3cdac9
GL: rename PixelType::HalfFloat and Attribute::DataType::HalfFloat to Half.
...
For consistency with the Half type we use elsewhere. The old enums are
still available, but deprecated and scheduled for removal.
6 years ago
Vladimír Vondruš
241cde706f
GL: new Mesh::maxVertexAttributeStride() query.
...
Good thing I checked this -- based on WebGL I was under assumption that
all GPUs have it just 256, but that was really just WebGL limitation.
Also ugh why this query wasn't there since the 90's?
6 years ago
Vladimír Vondruš
2562ca447c
GL: fix build on 32-bit Windows.
...
Now that the CI checks this I feel much safer.
6 years ago
Vladimír Vondruš
cc401b2b3c
GL: implemented missing Renderer::setPatch*() for tessellation shaders.
...
The last bits!
6 years ago
Vladimír Vondruš
48db23fc87
doc: improve GL API mapping.
6 years ago
Vladimír Vondruš
0e50f0feea
GL: implement {EXT,ARB}_draw_buffers{2,_blend,_indexed}.
...
I also figured out a new, faster & less verbose way to handle multiple
code paths in some cases -- why didn't I think of that earlier?
6 years ago
Vladimír Vondruš
d955908a38
GL: allow creating a Buffer and directly filling it with data.
6 years ago
Vladimír Vondruš
6aaf783867
GL: reduce amount of included stuff in a test.
6 years ago
Vladimír Vondruš
f53adefe96
GL: mark the 4-argument DynamicAttribute constructor as explicit.
...
Should have been done since ever, considering it was not annotated with
/*implicit*/.
6 years ago
Vladimír Vondruš
24cc971b1f
GL: reworked apple-buffer-texture-unbind-on-buffer-modify workaround.
...
Much smaller, nicer and more robust.
6 years ago
Vladimír Vondruš
0e1779ad61
GL: a new case that the new Apple BufferTexture workaround doesn't fix.
...
Sigh.
6 years ago
Vladimír Vondruš
e97b04f66d
GL: new apple-buffer-texture-detach-on-data-modify workaround.
6 years ago
Vladimír Vondruš
26db8f9f19
GL: move friend declarations down into class privates.
...
So the header is not horrifying right from the top.
6 years ago
Vladimír Vondruš
86dbd86e74
GL: added BufferTexture::resetBuffer().
6 years ago
Vladimír Vondruš
3b940f2509
doc: avoid referencing the deprecated Math::swizzle() function.
6 years ago
Vladimír Vondruš
84ac43d2ce
GL: avoid picking up variadic Mesh::addVertexBuffer() for dynamic attribs.
...
Huh, the SFINAE thing was extremely easy.
6 years ago
Vladimír Vondruš
61af7672d1
Test: adapted for the upcoming asserting CORRADE_GRACEFUL_ASSERT.
6 years ago
Vladimír Vondruš
50ac6d1a13
Test: fix false sense of security in pixel/mesh enum mapping tests.
...
The stripped-down versions didn't actually test for correct order
because there was no external API result to check against expected
output. That's fixed now, plus clarified some comments and removed
copypasted nonsense.
6 years ago
Vladimír Vondruš
6fbedd8f52
Revert "doc: pile on more Doxygen workarounds."
...
This reverts commit 0b7831c1ad .
6 years ago
Vladimír Vondruš
0b7831c1ad
doc: pile on more Doxygen workarounds.
...
Sad! https://github.com/doxygen/doxygen/issues/7472
6 years ago
Vladimír Vondruš
c1f43709fd
doc: sweeping update of CMake usage instructions.
...
Putting more emphasis into CMake subproject setup.
6 years ago
Vladimír Vondruš
9ae20a0a67
doc: fix mismatched enum value links.
...
Doxygen 1.8.17 *finally* fixes enum value linking and so linking to
Enum::Value via TotallyArbitraryString::Value no longer works. That
uncovered a ton of documentation errors.
A welcome improvement, for once.
6 years ago
Vladimír Vondruš
d6718aaa1d
doc: use PRIVATE in target_link_libraries() CMake snippets.
...
The keyword-less version is discouraged for quite some time already.
6 years ago
Vladimír Vondruš
34261840bc
GL: expand ARB_DSA blacklisting on Intel Windows drivers a bit further.
...
This should finally fix all remaining Intel Windows driver issues.
Hopefully. Or at least until the next major driver update.
6 years ago
Vladimír Vondruš
f831be7031
GL: clang-cl is this what you want?
6 years ago