It has a big impact on 2D and text rendering performance (cf. #24466)
so the solution seems worse than the bug it aims to work around.
It's now opt-in via "rendering/quality/2d/gles2_use_nvidia_rect_flicker_workaround"
for those who need it and have a simple enough game for the performance
drop not to be an issue.
Fixes#24466.
Some used 'is_valid()' checks, others not. Validity is already checked in 'unref()',
and 'remove_resource_format_*()' has an ERR_FAIL condition on 'is_null()' already
(which shouldn't happen since we're only unregistering things that we previously
registered.
Also add missing GDCLASS statement in ResourceFormatLoaderVideoStreamGDNative,
missed in #20552 which was last amended before #19501 was merged.
Fixes rectangle being drawn as it was a non-negative size in case it actually is. This can be observed e.g. when drawing a negative size selection rectangle (i.e. press mouse button and move cursor up and left).
Precision qualifiers are only used on OpenGL ES 2.0 and 3.0,
and while OpenGL 3.3 defines them for compatibility (but without
practical effect), they're missing from OpenGL 2.1, so we define
them to prevent compilation errors.
Fixes#24521.
- The `cpu-features.{c,h}` code was only used by chance by the webm
(libvpx) code, so I moved it there. It was actually introduced before
that and wasn't in use, and libvpx just happened to be able to
compile thanks to it being bundled.
It could potentially be compiled on the fly from the Android NDK, but
since we plan to replace the webm module by a GDNative plugin in the
near future, I went the bundling route.
- `ifaddrs_android.h` is already provided in the Android NDK as
`ifaddrs.h`, same as on other Unixes. Yet we cannot use it until we
up the min API level to 24, where `getifaddrs` is first defined.
I moved the files to `thirdparty/misc` and synced them with upstream
WebRTC (only indentation changes and removal of `static` qualifiers).
Also removes dropped thirdparty files from COPYRIGHT.txt after changes
in #24105 and #24145.