Add EditorAssetLibrary::is_available which always returns false in the
Web editor and use it in EditorNode for detection.
(cherry picked from commit 0e504e4191)
Instead of reusing the custom_template/ prefix which is actually only
used for the prebuilt APK workflow, we add a new custom_build/ prefix.
This is a slight compat breakage (users will have to redo their config)
but enables us to group the Min SDK and Target SDK options where they make
sense, and avoid reusing the previously hardcoded Target SDK 30 from
Godot 3.4.
Those two options are now strings instead of integers so that we can keep
them empty by default, and show their default value using a placeholder.
So some validation has been added to make sure they are proper ints.
The upper bound on Target SDK was also removed as it's a common use case
to use it to try to target newer released SDKs. But we warn the user that
this wasn't validated by us.
The export info dialog is now exclusive so that when it doesn't auto-close,
i.e. when it errors, you don't close it by mistake by clicking outside.
Fixes#62465.
Having a mix of settings with and without subcategory makes the 'Editor'
section stand out with a weird UX, as instead of simply being a foldable
section like the others, it also holds its own top-level settings and is
therefore selectable.
This wasn't the case in 3.4, and is fixed in 4.0 by refactoring, so for
3.5 we should preserve the 3.4 UX, even if it's not the best.
GitHub doesn't allow CORS so we can't download assets from it.
There'd also be more work needed for the Asset Library plugin to be
usable in the Web editor even if that was supported.
(cherry picked from commit 42b48496de)
This replaces the existing "chainlink" instance icon that was
used for external links. That icon is still used for scene instancing.
The icon was designed by redlamp.
Co-authored-by: Taylor Wright <taylor@redlamp.org>
(cherry picked from commit 5626d026d8)
These set of changes focus primarily on getting the core logic and overall Godot Editor UI and functionality up and running natively on Android devices.
UI tweaks / cleanup / polish, as well configuration for Android specific functionality / restrictions will be addressed in follow-up PRs iteratively based on feedback.
Co-authored-by: thebestnom <shoval.arad@gmail.com>
This lets us have its definition in `core/version.h` and avoid
rebuilding a handful of files every time the commit hash changes.
(cherry picked from commit 90162851a7)
When editor continuous redraws is switched off, the editor only redraws when a redraw_request was issued by an element in the scene. This works well in most situations, but when scenes have dynamic content they will continuously issue redraw_requests.
This can be fine on high power desktops but can be an annoyance on lower power machines.
This PR splits redraw requests into high and low priority requests, defaulting to high priority. Requests due to e.g. shaders using TIME are assigned low priority.
An extra editor setting is used to record the user preference and an extra option is added to the editor spinner menu, to allow the user to select between 3 modes:
* Continuous
* Update all changes
* Update vital changes
Clarifies that the button opens the user:// dir
and for better consistency with certain ProjectSettings values:
"Use Hidden Project Data Directory" is named similarly, but refers to data within res://
and two values refer to user:// as "User Dir"
(Translations were not updated)
and rename enum value accordingly
(cherry picked from commit 54018e4021)
Change the entire navigation system.
Remove editor prefix from nav mesh generator class. It is now used for baking
at runtime as well.
Navigation supports obstacle avoidance now with the RVO2 library.
Nav system will also automatically link all nav meshes together to form one
overall complete nav map.
Always build with the GUI subsystem.
Redirect stdout and stderr output to the parent process console.
Use CreateProcessW for blocking `execute` calls with piped stdout and stderr (prevent console windows for popping up when used with the GUI subsystem build, and have more consistent behavior with non-blocking calls).
Add `open_console` argument to the `execute` to open a new console window (for both blocking and non-blocking calls).
Remove `interface/editor/hide_console_window` editor setting.
Remove `Toggle System Console` menu option.
Remove `set_console_visible` and `is_console_visible` functions.
This commit was created by merging the commits presented in #39255 for
the GSoC 2020 VCS Improvement project
VCS: Make EditorVCSInterface store less amount of internal state
VCS: Add force push checkbox + more frequent VCS updates
Add force push checkbox in the Commit dock. Also add some missing
opportunities for checking the VCS state again on from UI inputs
VCS: Fix script contents not being updated on merge conflict
VCS: Add branch creation VCS interface calls
VCS: Add VCS remote creation and remote selection menus
VCS: Show more commit information + Fix truncated commit offsets
VCS: Make VCS less noisy + Fix diff view refreshes
VCS: Fix mismatched argument names in VCS helpers
VCS: Add SSH transport support for remote operations
Also, moves the editor's VCS settings registrations to
project_settings.cpp and editor_settings.cpp
VCS: Change TTR() to vformat() for branch and remote removal text
VCS: Add VCS branch icon instead of using Tree node icon
Co-authored-by: @ChronicallySerious
Async. compilation via ubershader is currently available in the scene and particles shaders only.
Bonus:
- Use `#if defined()` syntax for not true conditionals, so they don't unnecessarily take a bit in the version flagset.
- Remove unused `ENABLE_CLIP_ALPHA` from scene shader.
- Remove unused `PARTICLES_COPY` from the particles shader.
- Remove unused uniform related code.
- Shader language/compiler: use ordered hash maps for deterministic code generation (needed for caching).
Sets `AlignOperands` to `DontAlign`.
`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.