Commit graph

843 commits

Author SHA1 Message Date
Rémi Verschelde
f50c7f7415
Core: Move generated VERSION_HASH to a .cpp file
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)
2022-02-10 13:06:56 +01:00
lawnjelly
a0c6d16c90 Add editor vital redraws only option
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
2022-02-02 11:26:45 +00:00
Hugo Locurcio
8948b36f0d
Add project setting to change scene file casing
The default behavior is unchanged (the root node name is used as-is).
2022-01-21 02:00:43 +01:00
Hugo Locurcio
856f2d0f8f
Add shortcuts for New Scene and New Inherited Scene actions
These default to Ctrl + N and Ctrl + Shift + N respectively.
2022-01-20 20:34:05 +01:00
Rémi Verschelde
a627cdafc5
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-13 15:54:13 +01:00
zacryol
6fc587a6e5
Reword "Open Project Data Folder" as "Open User Data Folder"
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)
2022-01-12 17:39:31 +01:00
Rémi Verschelde
8a192cd0ab
Merge pull request #55987 from bruvzg/wt🤎3 2022-01-10 16:43:56 +01:00
Rémi Verschelde
edd9534f97
Merge pull request #53900 from ChronicallySerious/update-vcs-1 2022-01-10 12:18:57 +01:00
kobewi
ad767b2ec4
Don't edit foreign resources when restoring scene
(cherry picked from commit 363a9c674a)
2022-01-06 00:27:35 +01:00
Jake Young
09bc9eb101
Backport NavigationServer with RVO2 to 3.x
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.
2022-01-05 16:00:56 +01:00
bruvzg
59085d5051
[Windows] Improve console handling and execute.
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.
2021-12-18 10:13:27 +02:00
kobewi
f899b76747 Improve save handling for built-in scripts 2021-12-04 01:28:52 +01:00
janglee
0b327eb46e VCS: Add push, pull, fetch and improved diff view to VCS UI
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
2021-12-01 22:52:07 +05:30
kobewi
b8af671a95
Improved some editor checkboxes
(cherry picked from commit 5dc7346ab4)
2021-11-25 22:03:59 +01:00
kobewi
969136e675
Ignore external editor for built-in scripts
(cherry picked from commit 9abb07efb4)
2021-11-15 17:22:47 +01:00
kobewi
e2fb8739df
Fix editor saving blank scenes (for real)
(cherry picked from commit 8144ac79cf)
2021-11-15 16:10:00 +01:00
Pedro J. Estébanez
4c710780d4 Implement async shader compilation plus caching for GL ES 3
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).
2021-11-09 12:19:12 +01:00
Pedro J. Estébanez
4dba25b3ff Add property value pinning 2021-11-08 17:42:27 +01:00
Rémi Verschelde
87c80f529f
clang-format: Enable BreakBeforeTernaryOperators
clang-format keeps breaking the way it handles break *after* ternary operators,
so I give up and go with the only style they seem to actually test.
2021-10-28 14:50:33 +02:00
Rémi Verschelde
42d385b312
clang-format: Disable alignment of operands, too unreliable
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`.
2021-10-28 13:23:38 +02:00
Max Hilbrunner
e29126914d
Save all 64 bits of get_ticks_msec() in more cases
(cherry picked from commit 5dc02eb8b0)
2021-10-26 18:23:31 +02:00
Matthew Newall
3149eabdc0
Fixed editor attempting to save a blank scene with save all scenes
(cherry picked from commit e10d0d76bc)
2021-10-15 12:51:38 +02:00
Matthew Newall
8f66e6148d
Corrected Save Scene and Save All Scenes not working when the scene's dir no longer exists
(cherry picked from commit ed2280528f)
2021-09-29 11:04:49 +02:00
Rémi Verschelde
abe0535fc0
Revert "Load assets before enabling editor plugins"
This reverts commit 55f9ae3d21.

It caused regressions #52968 and #52995.
2021-09-27 18:28:01 +02:00
TechnoPorg
55f9ae3d21
Load assets before enabling editor plugins
Moves the code for enabling plugins from NOTIFICATION_READY to after the first scan has been completed.

(cherry picked from commit 1963c63b91)
2021-09-21 17:15:00 +02:00
kobewi
fe745e2fff
Close built-in script from any scene
(cherry picked from commit 1a60509699)
2021-09-19 11:30:29 +02:00
Hugo Locurcio
2cd626185c
Capitalize properties in the remote inspector
This makes property casing consistent with the editor.

If property capitalization is disabled in the Editor Settings,
the remote inspector will also disable capitalization.

(cherry picked from commit 854f328517)
2021-09-19 11:30:21 +02:00
Vincent
ea13ff860d
implement individual mesh transform for meshlibrary items
(cherry picked from commit 70108fd850)
2021-09-14 13:41:22 +02:00
Hugo Locurcio
27e38b0f26
Improve the editor window title for better usability
- Display the scene name, then the project name, then "Godot Engine".
- Display the "modified" mark before anytihng else.

Both of these changes ensure important, project-specific elements
can always be seen in the task bar which may truncate strings due to
its low per-item width.

- Use "Unnamed Project" if the project has no name (similar to the
  Project Manager).
2021-08-22 08:59:42 +02:00
Haoyu Qiu
5f316aa216 Improve Undo/Redo menu items
* Make Undo/Redo menu items disabled when clicking it does nothing.
    * Context menu of `TextEdit`
    * Context menu of `LineEdit`
    * Editor's Scene menu
    * Script editor's Edit menu and context menu  (for Script and Text)
* Make editor undo/redo log messages translatable.
* Mark `UndoRedo`'s `has_{un,re}do()` methods as `const`.
* Expose `TextEdit`'s `has_{un,re}do()` to scripts since `{un,re}do()` are already available.
2021-08-18 00:46:51 +08:00
lawnjelly
115f4dce55 Sphere occluders (portals and general use)
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.
2021-08-17 09:02:06 +01:00
kobewi
b730ea9ad3
Don't save project on startup in headless or no-window mode
(cherry picked from commit ea2489ce93)
2021-08-13 10:20:01 +02:00
Haoyu Qiu
cdaae2abfb
Fixes crash when AnimationPlayer reset on save
(cherry picked from commit 96f077a18d)
2021-08-12 16:43:23 +02:00
Hugo Locurcio
a2a4935166
Allow using the mouse wheel to navigate scene tabs
This works in a way similar to tabs in KDE or some patched
Chromium builds.

(cherry picked from commit d2dec8d614)
2021-08-12 16:42:15 +02:00
Hugo Locurcio
5497405cf7
Change the editor update spinner color when updating continuously
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)
2021-08-06 11:10:48 +02:00
Yuri Sizov
cb66cf80f5 Cache EditorResourcePicker's allowed types 2021-08-03 16:21:05 +03:00
lawnjelly
83f1377a8f Portals - lift roomlist restrictions and fix link bug
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.
2021-07-20 19:05:16 +01:00
reduz
ca223d71d8
Addes ability to load build sources from file.
* 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)
2021-07-20 13:05:10 +02:00
Rémi Verschelde
559d02a216
Merge pull request #50095 from LightningAA/add-viewport-spy-3.x
[3.x] Add the ability to preview viewports from the inspector
2021-07-20 11:19:34 +02:00
Stanislav Labzyuk
10252d81a3 Implemented the ability to add shortcut for Project -> Reload Current Project. 2021-07-20 00:12:50 +07:00
Lightning_A
cf8de3b316 Add viewport preview plugin and refactor TextureEditorPlugin 2021-07-18 14:49:45 -06:00
lawnjelly
eb6f98ec55 Portal occlusion culling
Adds support for occlusion culling via rooms and portals.
2021-07-14 11:43:23 +01:00
Haoyu Qiu
6179f76547
Merge similar editor strings
(cherry picked from commit 4383f8a790)
2021-07-13 10:20:03 +02:00
Eric M
c696847f3d
Added 'Select Current' option when user is prompted to select main scene after clicking play
(cherry picked from commit 2296b57739)
2021-07-13 09:46:31 +02:00
Pedro J. Estébanez
cd96e30fee
Remove side effects of scene save
(cherry picked from commit 598fd51277)
2021-06-29 13:13:06 +02:00
Lightning_A
898d404f66
Add "Suggest a Feature" to the help dialog.
Links to Godot Proposals's readme.

(cherry picked from commit 70fb239a25)
2021-06-29 13:11:47 +02:00
Marcel Admiraal
7e03bd1671 Remove duplicate WARN_PRINTS macro 2021-06-18 12:57:59 +01:00
Hugo Locurcio
415c1ccaaa
Add a "save on focus loss" editor setting (disabled by default)
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)
2021-06-17 12:51:21 +02:00
Andrii Doroshenko (Xrayez)
6aed7e349f
Separate version hash from version number in editor and project manager
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)
2021-06-17 12:47:53 +02:00
Lightning_A
4f87bd2bc4
Add the ability to reload the current project
(cherry picked from commit a6984f8d28)
2021-06-17 12:47:53 +02:00
daniel-mcclintock
a34d5c31b7
Fix out of sync separate distraction-free mode
(cherry picked from commit 45fc6c4706)
2021-06-17 12:47:52 +02:00
Hugo Locurcio
dd2fc60abc
Handle portrait mode monitors in the automatic editor scale detection
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)
2021-06-17 12:47:52 +02:00
Marcel Admiraal
5a58516231 Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
Yuri Sizov
343ba504d3 Add EditorResourcePicker control based on the Inspector editor for Resources
Backported from #47260
2021-06-11 13:32:15 +03:00
K. S. Ernest (iFire) Lee
6ec9468e75 Backport gltf2 module from master. 2021-05-31 13:18:06 -07:00
Rémi Verschelde
72647cc55c
i18n: Sync translations with Weblate
(cherry picked from commit bcedd09742)
2021-05-18 12:09:38 +02:00
kleonc
0a91c8e972
Fix crash after disabling plugin using set_force_draw_over_forwarding_enabled()
(cherry picked from commit 5a8314016a)
2021-05-17 13:09:14 +02:00
Hugo Locurcio
2eea00b036
Add "Support Godot Development" option to the editor's Help menu
(cherry picked from commit 3eae2f9c6d)
2021-05-17 13:06:11 +02:00
Yuri Sizov
fc67ff3d0a
Keep custom editor theme when changing editor settings
(cherry picked from commit 56aedcee17)
2021-05-14 10:34:48 +02:00
Daniel Lungaro
ede0d47ccd
Remove plugin from enabled if there's an error
inform user in warning message

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>

Refactor remove plugin from enabled

(cherry picked from commit 2bae31a4df)
2021-05-14 10:34:05 +02:00
Hugo Locurcio
c318cf6ed2
Save the current script when pressing Ctrl + S if no scene is open
- 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)
2021-05-09 17:47:38 +02:00
Hugo Locurcio
8b06085249
Implement the %command% placeholder in the Main Run Args setting
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)
2021-05-09 17:47:38 +02:00
Pedro J. Estébanez
4da9a501f6 Add animation reset track feature
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.
2021-05-09 09:40:16 +02:00
CaptainProton42
76f3f6949e
Fix 3D scene preview generation.
File system dock previews will now be generated for 3D scenes when no
editor feature profile is set.

(cherry picked from commit 16304aaa3b)
2021-05-05 15:28:12 +02:00
Rémi Verschelde
140350d767
Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
Rémi Verschelde
0bf06c25a3
Merge pull request #48450 from Calinou/version-click-to-copy-3.x
Make it possible to copy the Godot version identifier by clicking it (3.x)
2021-05-04 17:55:43 +02:00
Rémi Verschelde
b4af1eba0a
Style: Enforce use of bool literals instead of integers
Using clang-tidy's `modernize-use-bool-literals`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
2021-05-04 16:39:13 +02:00
Hugo Locurcio
1ceb603de8
Make it possible to copy the Godot version identifier by clicking it
This closes #24317.
2021-05-04 16:38:17 +02:00
Rémi Verschelde
a828398655
Style: Replaces uses of 0/NULL by nullptr (C++11)
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2021-05-04 16:30:23 +02:00
Rémi Verschelde
b5e1e05ef2
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
Rémi Verschelde
3d15f04668
Style: clang-format: Disable AllowShortIfStatementsOnASingleLine 2021-05-04 14:45:15 +02:00
Rémi Verschelde
6e600cb3f0
Style: Set clang-format Standard to c++14 2021-05-04 14:45:15 +02:00
Rémi Verschelde
48cc756f88
Merge pull request #37067 from zaksnet/multiple-editor-instances
Automatic remote debugger port assignment.
2021-05-01 12:57:35 +02:00
Zak
c3cfb87548 Allow multiple editor instances to use different ports
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.
2021-05-01 11:32:10 +02:00
lupoDharkael
a5842a8362
Save resource: implement extension priority
give .res less priority and .tres more priority as preferred
extensions.

(cherry picked from commit f2e906496b)
2021-04-29 11:27:56 +02:00
kobewi
645842e0e8
Save project after opening
(cherry picked from commit 76240515d8)
2021-04-26 13:15:28 +02:00
Hugo Locurcio
a989e08839
Improve error messages for missing export presets when using --export
- 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)
2021-04-26 12:20:28 +02:00
Rémi Verschelde
60c36af6dc
Remove now unnecessary ResourceImporterCSV importer
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)
2021-03-24 10:29:16 +01:00
Rémi Verschelde
48708b8e3d
Merge pull request #46999 from bruvzg/mac_new_wnd
[macOS] Fix "New Window" opening copy of current project instead of Project Manager.
2021-03-14 18:21:27 +01:00
bruvzg
7273e0b51b
[macOS] Fix "New Window" opening copy of current project instead of Project Manager. 2021-03-14 17:56:02 +02:00
jmb462
4b2b45f72b
Fix crash on closing empty modified scene
(cherry picked from commit 49d5ec073f)
2021-03-14 12:03:17 +01:00
kobewi
56c0b39521 Don't check modified time if file doesn't exist
(cherry picked from commit af069109be)
2021-03-02 10:26:14 +01:00
Shatur95
eb98ddf2c7 Add additional plugin path checks (3.2)
Need for compatibility after #45316.
2021-02-24 21:13:13 +02:00
Shatur95
0a874101fd Handle old relative plugin paths 2021-02-22 22:23:22 +02:00
Danil Alexeev
baf4720fd3 Fix "editor/editor_help" shortcut (again)
(cherry picked from commit c6435e1d47)
2021-02-22 10:42:26 +01:00
Hein-Pieter van Braam
220f24c191
Merge pull request #45618 from RandomShaper/modernize_mt_3.2
Backport of all the multi-threading modernization (3.2)
2021-02-18 20:47:24 +01:00
Rémi Verschelde
341c3cb04a
Merge pull request #45316 from Shatur95/detect-plugins-recursively-3.2
Detect plugins recursively (3.2)
2021-02-18 20:36:33 +01:00
hoontee
f28c089d64 Improved Inspector Sub-Resource Editing 2021-02-18 05:43:19 -06:00
Pedro J. Estébanez
4485b43a57 Modernize atomics
- 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>
2021-02-18 12:23:25 +01:00
Pedro J. Estébanez
6d89f675b1 Modernize Thread
- 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)
2021-02-18 11:58:08 +01:00
Pedro J. Estébanez
4ddcdc031b Modernize Mutex
- 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.
2021-02-18 11:58:08 +01:00
Ansraer
729a9c8a5e
Adjust auto scale on high res displays
(cherry picked from commit 466cf0b466)
2021-02-16 14:47:29 +01:00
kobewi
e7ee561ca0 Detect external modification of scenes 2021-02-11 01:08:49 +01:00
Danil Alexeev
1749cc4da8 Fix "editor/editor_help" shortcut overwriting when restarting editor
(cherry picked from commit 2105b6a070)
2021-02-05 09:28:35 +01:00
Tomasz Chabora
04ce4e6abb
Disable active editors when node gets deselected
(cherry picked from commit 958d23968d)
2021-02-02 13:02:46 +01:00
Hugo Locurcio
314dd32d88
Tweak the "Auto" editor setting hints to be more indicative
This affects the editor scale and font hinting settings which will now
display their automatically chosen value in parentheses.

(cherry picked from commit 57654508c9)
2021-01-26 17:00:15 +01:00
Dodoveloper
01acd46afc
Fix #33326 by reopening scenes
(cherry picked from commit c3abda0b13)
2021-01-26 17:00:09 +01:00
Shatur95
2443aba753 Detect plugins recursively 2021-01-19 18:46:55 +02:00
Rémi Verschelde
51bcc875ea
Merge pull request #45214 from arrowinaknee/3.2-fix-new-scene-save
[3.2] Remove unnecessary file existence check when saving scene
2021-01-16 12:45:16 +01:00
ArrowInAKnee
5d8a24d1a5 Remove unnecessary file existence check when saving scene 2021-01-15 20:33:12 +03:00