Add framework for supporting geometrical occluders within rooms, and add support for sphere occluders.
Includes gizmos for editing.
They also work outside the portal system.
Updating continuously should only be enabled for troubleshooting
purposes, as it uses a lot of CPU/GPU power.
The update spinner is now displayed in red when the Update Continuously
editor setting is enabled.
(cherry picked from commit a97c5b50db)
Allows users to have the RoomManager as the roomlist.
Fixes a couple of bugs dealing with situations where users attempt to link Portals to Rooms outside the roomlist.
Adds a PortalEditorPlugin allowing you to flip individual portals.
* If not present, the dialog asks to load build sources from a file.
* The export templates check now also verifies that build sources are installed and skips the template check.
This makes Android development easier.
(cherry picked from commit 6639cc9853)
This performs a Ctrl + S action every time the editor window loses focus,
saving both scenes and scripts as needed.
(cherry picked from commit f10c30a9ed)
When copy-pasting the version from About dialog to bug reports at GitHub,
this makes the version hash linkable to commits at GitHub.
(cherry picked from commit 293550f56a)
Using the smallest dimension of the width and height makes it possible
to support both landscape and portrait monitors.
(cherry picked from commit 728fa3ff71)
EditorSettings: Factor code to compute auto display scale
Also fixes typo introduced in https://github.com/godotengine/godot/pull/48597/files#r652636544.
(cherry picked from commit f862f9a056)
inform user in warning message
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Refactor remove plugin from enabled
(cherry picked from commit 2bae31a4df)
- Tweak the dialog messages to be more informative.
- The "Saved N modified resources" dialog is not a warning per se,
so make it more explicit.
(cherry picked from commit 39f9b92f54)
This can be used to tell Godot to run an executable that will run Godot
rather than running Godot directly. This is useful to make Godot start
on the dedicated GPU when using a NVIDIA Optimus setup on Linux:
`prime-run %command%`
The `editor/run/main_run_args` setting declaration was moved to make it
visible in the ProjectSettings documentation.
(cherry picked from commit ce4aa07276)
As a bonus, to have consistency between use Beziers and create insert tracks, use Beziers also gets a default via editor settings that is used when the confirmation dialog is disabled, instead of just falling back to creating non-Bezier tracks.
Previously if more than one Godot editor was running then the debugger of one editor would not work because both editors were trying to connect on the same port.
This commit attempts to fix this by allowing the debugger to change the port at runtime in such cases.
- Display a specific error message if the project doesn't have an
`export_presets.cfg` file.
- Display a list of detected export presets if an invalid export
preset name is supplied.
(cherry picked from commit 09f38ea215)
Its only purpose was to prevent importing CSV files as translations, but it
would still import them as *nothing*, leading to workflow issues.
This is now properly fixed with #47268 which allows disabling the import for
specific files.
(cherry picked from commit 7ed2220928)
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile` by the new `SafeFlag`
- Platform-specific implementations no longer needed
Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
- Based on C++11's `mutex`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed
- Simpler for `NO_THREADS`
- `BinaryMutex` added for special cases as the non-recursive version
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
This affects the editor scale and font hinting settings which will now
display their automatically chosen value in parentheses.
(cherry picked from commit 57654508c9)
Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
(cherry picked from commit b5334d14f7)
1. show valid directory path when opening editor file dialog
2. keep file name when changing path by entering path
3. add first extension in filter automatically if not given
4. remove directory in recent list if it's not valid anymore
(cherry picked from commit 1f4b1e1488)
The code we had for PVRTexTool doesn't work as it's not compatible with current
PVRTexTool CLI options, and likely hasn't been for years.
Instead, we have our own vendored pvrtccompressor thirdparty library which all
users have thus de-facto been using. This commit moves the compress code to
`modules/pvr` where it belongs.
There's no proper compress function for PVRTC 2-bit format, that's a bug that
will need to be fixed (currently it's compressed as 4-bit format even if you
use Image::FORMAT_PVRTC2).
Fixes#28669.
(cherry picked from commit 1a31274855)
Now that the F1 key is available, we can bind Search Help to the key
generally used in other applications to open the help menu.
(cherry picked from commit 42685f514f)
Export presets contains the export_path option, to specify the default
export location, but the CLI export option disregarded that, and always
required and export path to be specified.
After this commit, if the export path is not specified in the command,
the one in the preset will be used, erroring only if it's not present or
invalid.
(cherry picked from commit 032a1c5dc3)
Switching between editors now requires holding Ctrl to avoid
conflicts with the new F2 shortcut.
The asset library can now be accessed by pressing Ctrl + F4
on Windows and Linux, or Alt + 4 on macOS.
This partially addresses #38139.
(cherry picked from commit 79e4e26738)
This also makes borders always display in the editor theme,
even if the editor scale is below 100%. Otherwise, "focus" outlines
would vanish when using an editor scale below 100%,
which harms usability.
The editor used to only copy drag-dropped files in the File System pane
if the given file was a valid resource, or had a specific file format
(ttf, otf).
With this PR, all drag and dropped files are copied instead, no matter
their extension.
(cherry picked from commit 410b324740)
A static function is added to EditorNode which allows for filename
disambiguation given a list of filenames and the corresponding list of
absolute paths for those files. This function is then used to
disambiguate scene and script tabs in the editor.
(cherry picked from commit 4285211f40)
The existing theme editor icon could be unintentionally set for any
global class with matching name (`Group` icon, `Group` class_name etc),
which would only show up in the "Create Dialog" context, but not the
scene tree dock.
This change prevents this behavior, and ensures that the icon can be
actually overidden by explicit icon path in `class_name`, if there's any
custom icon to begin with.
The correct built-in type's icon is fetched for child classes if there
are no custom icons detected throughout base classes as well, so it
isn't left empty for those cases.
(cherry picked from commit c177308f80)
`get_global_class_name` for `GDScriptLanguage` is slow because
it forces to parse an entire script each time. This patch ensures
that the icon is actually fetched from the EditorData where they
are loaded beforehand.
This change also makes the behavior consistent with the existing
`get_object_icon` method in EditorNode.
(cherry picked from commit 4a86e2bb76)
The crash happens further down when setting an invalid owner in
`Node::_set_owner_nocheck` but I couldn't figure out how to fix it.
But here the proper fix is to catch the invalid scene file early on
and fail loading it.
Part of #17372.
(cherry picked from commit c080ec5da2)