This turned out to break a lot of things in the engine unexpectedly. The
actual deadlock that this fixes seems rare so a better approach is
needed.
For 4.7 we should drop this one.
This reverts commit ae564feb2a.
This reverts commit 7ab8328204.
Allowing this breaks several assumptions in the engine, normally this
doesn't occur but when using the WTP it can occur. For instance during
resource loading the message queue is serviced during tear down.
This means this situation can be created from user code if they do async
resource loading in the `_load` of a resource in the main scene.
This also makes the MainLoop report that it IS iterating during tests as
the tests expect the message queue to be serviced even though no main
loop is running.
- Print a warning when `--gpu-index` is out of range in RenderingDevice-based
renderers, since it falls back to automatic GPU selection.
The GPU selection logic is only available in RenderingDevice-based renderers.
This will allow decoupling `display_server.h` from a number of headers in the
codebase which only require those enums and not all the DisplayServer API.
A number of headers in the codebase included `rendering_server.h` just for
some enum definitions. This means that any change to `rendering_server.h` or
one of its dependencies would trigger a massive incremental rebuild.
With this change, we decouple a number of classes from `rendering_server.h`,
greatly speeding up incremental rebuilds for that area.
On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 60s (from 2m57s).
This fixes issues with certain video formats (like OGV) and video players
not supporting resolution changes during playback.
Resizing the viewport during recording is still not recommended
(as cropping and resizing has a performance cost and can impact visuals),
but it shouldn't cause crashes or broken files anymore.
Previously, some messages indicating a lack of support were errors
instead of warnings. Some messages were also not shown when running
a release export template.
- Use "renderer" terminology consistently instead of "rendering method".
This makes it easier to select TextServers on the command line.
Instead of having to enter the full name in quotes, you can now
just use `advanced`, `fallback` or `dummy` (lowercase).