Vladimír Vondruš
403ed25b12
GL: don't call GL3+ APIs on GL 2.1.
...
Makes Zink sad.
6 years ago
Vladimír Vondruš
6274911a3e
GL: make the double precision shader tests work on llvmpipe.
...
It doesn't support GLSL 4.00 yet, but the extension alone is supported.
6 years ago
Vladimír Vondruš
65a2ced2a7
Make this compile and test cleanly with CORRADE_NO_ASSERT defined.
6 years ago
Vladimír Vondruš
d3f2235759
Adapted to Corrade changes.
6 years ago
Vladimír Vondruš
d209d496bc
GL: this is done since 0e50f0feea.
6 years ago
Vladimír Vondruš
c03ed3af75
doc: show how to set up blending for alpha / transparency.
...
Hopefully more discoverable now also.
6 years ago
Vladimír Vondruš
960fd278cc
GL: doc++
6 years ago
Vladimír Vondruš
8146051634
GL: doc++
6 years ago
Vladimír Vondruš
e5075803eb
GL: state reset needs to unbind PBOs when entering external code.
...
Qt is not PBO-aware and it messes with its state when resizing a window.
6 years ago
Vladimír Vondruš
a119ee2bb2
GL: fix compilation with ANGLE on macOS.
...
This assumed that non-iOS Apple platform is always desktop GL. Wrong.
6 years ago
Vladimír Vondruš
081dd8981f
Doxygen, FFS.
6 years ago
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