Vladimír Vondruš
32a7adefed
GL: use StringView literals for all workaround names.
...
These are in most cases the only strings that are used, and I don't
think having to call std::strlen() for each of them is a good idea if
we don't need to.
5 years ago
Vladimír Vondruš
95b3f8578d
GL: rework Context to not use any STL containers.
...
We're going to eventually include this class in all Application classes
(need that in order to inherit a to-be-created Configuration class) and
the <string> and <vector> would be just too much. This change caused
magnum-gl-info.wasm (WebGL 2 build) to go down from 247 to 245 kB. Not
much, but that's I guess because there's still a lot other vectors of
strings elsewhere.
There's a lot more places to clean up, will do those in separate
commits. This change is the most atomic I could do, and it introduces a
breaking change to all APIs that returned a std::vector or a
std::string. Fortunately (or as I hope) those weren't used that much, so
it shouldn't cause build breakages for that many people.
Quite a lot of the optimization ideas is borrowed from the new Vk
library -- such as "interning" the driver workaround strings to avoid
allocating their copies.
5 years ago
Vladimír Vondruš
729ab8d5e4
GL: StaticArray is no longer non-copyable.
5 years ago
Vladimír Vondruš
755d97121c
doc: discourage using MeshIndexType::UnsignedByte.
5 years ago
Vladimír Vondruš
ffdebff048
GL: implement the base instance and base vertex ES and WebGL extensions.
...
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA this was terrible! Why the hell it needs
to have so many variants, special cases and exceptions!!!
5 years ago
Vladimír Vondruš
765ecee1f2
GL: remove one function pointer indirection for certain glDraw calls.
...
The extension-epcific code paths can reference the GL APIs directly, no
need to go through another function.
5 years ago
Vladimír Vondruš
0dc181d846
GL: new "angle-chatty-shader-compiler" workaround.
5 years ago
Vladimír Vondruš
d0574b83ed
GL: advertise the "intel-windows-chatty-shader-compiler" workaround.
...
This was done silently until now and I think such platform-specific code
should be always exposed as a disableable workaround. Moreover, I need a
similar thing for ANGLE, so this comes handy.
5 years ago
Vladimír Vondruš
acdbcc2ef4
GL: advertise WEBGL_multi_draw only on Emscripten 2.0.0 and up.
5 years ago
Vladimír Vondruš
63f55a37b1
GL: implement ANGLE_multi_draw and WEBGL_multi_draw support.
5 years ago
Vladimír Vondruš
f5313a480d
GL: this should be here only on ES.
...
The definition is already like that.
5 years ago
Vladimír Vondruš
b0bc366334
GL: recognize and load ANGLE multi-draw extensions.
...
Needed a change in flextGL to allow merging in 3rd party gl.xml
additions because Chrome is apparently a center of the universe and thus
doesn't need to bother upstreaming its extensions, ffs.
5 years ago
Vladimír Vondruš
08893165f2
GL: TextureFormat::SR[G]8 aren't supposed to be available on ES2.
5 years ago
Vladimír Vondruš
82b2da0b22
GL: make gl_PointSize-related APIs easier to search for.
5 years ago
Vladimír Vondruš
437b3d1556
GL: don't check for Windows-only workarounds everywhere.
...
Apparently nobody tried to run AMDGPU PRO drivers on Linux until now.
Sorry.
5 years ago
Vladimír Vondruš
79c3519045
Vk: add driver workaround scaffolding and the first one for SwiftShader.
...
Yay? It's funny, what produces correct result causes validation errors.
I suppose this will be very similar for all other workarounds.
5 years ago
Vladimír Vondruš
7d24e7a844
doc: clarify some ambiguities.
...
Apparently "pixel size" could have meant "image size in pixels" as well.
Additionally also clarify what image size means, since it might be
unclear especially for the block-compressed images.
5 years ago
Vladimír Vondruš
3d136503d8
Updated copyright year.
5 years ago
Vladimír Vondruš
fbe996ce3e
GL: use a bit more of an actual English here.
5 years ago
Vladimír Vondruš
44ad5855c6
doc: Doxygen, you're shitty.
...
An unqualified link to Extensions.h will, guess what -- pick the last
Extension.h header that Doxygen came across. So in this case
Magnum/Vk/Extensions.h. With no warning or any other hint that something
MAYBE could be wrong. FFS.
5 years ago
erikwijmans
015985016c
Add a nv-egl-crashy-query-device-attrib workaround.
5 years ago
Vladimír Vondruš
61e777d34d
GL: minor cleanup.
5 years ago
Vladimír Vondruš
91631139f7
Test: use shorter std::is_copy_{constructible,assignable} everywhere.
...
I wonder why I didn't do this from the beginning, back in 2010 or so.
5 years ago
Vladimír Vondruš
642a90f75d
GL: fix the value of Renderer::Memory::Barrier::ShaderStorage.
...
Sigh.
6 years ago
Vladimír Vondruš
2464c76f6e
GL: add a clarifying comment.
6 years ago
Vladimír Vondruš
d51094e972
GL: wait, PrimitiveQuery isn't on ES2 at all, so why the ifdefs.
6 years ago
Vladimír Vondruš
1a626a1db5
GL: Context move constructor should be marked noexcept.
6 years ago
Vladimír Vondruš
e8f13af4be
GL: test noexcept-movability of all GL classes.
...
Not sure why this wasn't done for ages already, all other
(non-GL) classes have it.
6 years ago
Vladimír Vondruš
08bd6e9ae9
Test: fix wrong plugin name in a message.
6 years ago
Vladimír Vondruš
091572e498
GL: doc++
6 years ago
Vladimír Vondruš
6e8e78c0e4
GL: verify that NoCreate constructors are explicit.
6 years ago
Vladimír Vondruš
75d238f50b
GL: implemented ARB_buffer_storage.
6 years ago
Vladimír Vondruš
aa13d08bac
GL: newer SwiftShader implements NV_read_stencil, but it's broken.
...
XFAIl on that.
6 years ago
Vladimír Vondruš
8bbbd4a994
GL: document uselessness of certain polygon offsets for future me.
...
I bet this is at least the fifth time I ran into this. And always
immediately forgot after.
6 years ago
Vladimír Vondruš
851af4fded
GL: add *Texture::target().
...
Useful when interacting with raw GL code.
6 years ago
Vladimír Vondruš
32b3f2810d
GL: doc++
6 years ago
Vladimír Vondruš
8d4dda12cd
GL: recognize all remaining WebGL extensions.
6 years ago
Vladimír Vondruš
af73929c67
GL: implemented WEBGL_blend_equation_advanced_coherent.
6 years ago
Vladimír Vondruš
bb5004dbb5
GL: added Framebuffer::Status::IncompleteDimensions.
...
Sigh, NVidia.
6 years ago
Vladimír Vondruš
083ecf72b8
GL: implement EXT_texture_norm16 ES and WebGL extension.
6 years ago
Vladimír Vondruš
cd48c59cab
Remove remaining APIs deprecated in 2018.10.
6 years ago
Vladimír Vondruš
6feb5a4cab
GL: fix compilation on macOS + ANGLE.
6 years ago
Vladimír Vondruš
fe4acbae7d
GL: there's no EXT_DSA anymore.
6 years ago
Vladimír Vondruš
c4e41d28f1
GL: one more iteration on the Apple buffer texture workaround.
...
This broke DSA-less contexts with ARB_multi_bind present.
6 years ago
Vladimír Vondruš
5222cf3478
doc: change all "latest" additions/deprecations to 2020.06.
6 years ago
Vladimír Vondruš
36f51e3116
GL: finalize the apple-buffer-texture-unbind-on-buffer-modify workaround.
...
Followup to 24cc971b1f , covering the
remaining case.
6 years ago
Vladimír Vondruš
51473776f1
GL: repro for the last remaining Apple buffer texture issue.
6 years ago
Vladimír Vondruš
d0fa28c331
Use the new half/packed typedefs where appropriate.
...
Had this in a stash for a while, not sure why it wasn't commited
already.
6 years ago
Vladimír Vondruš
1ff8baa220
GL: clarify Shader error reporting.
6 years ago
Vladimír Vondruš
609275f993
Audio,GL: shorter way to avoid crashes on nullptr C strings.
...
This is actually to avoid an ambigous overload with Corrade's new
StringView APIs, but doesn't hurt to commit that anyway.
6 years ago