Commit Graph

1088 Commits

Author SHA1 Message Date
Aaron Franke de6f8f9d21
Make the Import dock depend on the FileSystem dock 2020-08-27 02:01:14 -04:00
simpu ea2eaf8c27 Added debugger plugin support
Changes:
* EngineDebugger is exposed to gdscript. Game side of communication can be implemented through it.
* EditorDebuggerPlugin is added which handles the editor side of communication.
2020-08-26 11:24:51 +05:30
bruvzg 03ffd6451a
Revert "[Windows] Attach to parent console instead of creating new one."
This reverts commit 4f7a49db53.
2020-08-17 19:05:48 +03:00
Juan Linietsky 079ca220e1 Added volumetric fog effect. 2020-08-13 11:28:45 -03:00
bruvzg 4f7a49db53
[Windows] Attach to parent console instead of creating new one. 2020-08-11 13:02:50 +03:00
Hugo Locurcio b324a929f6
Improve messages related to overriding the default editor layout
This closes #33884.
2020-08-02 14:12:50 +02:00
SkyJJ 0e54ba0486 Fix EditorTranslationParser leak 2020-07-27 17:02:53 +02:00
Yuri Sizov e2b85b74a2 Fix errors saving a 2D scene preview when the 2D editor was never opened 2020-07-27 16:49:56 +03:00
Tomasz Chabora 9c84e34fd4 Fix run project when current scene was never saved 2020-07-23 18:51:32 +02:00
Andy Maloney 4dda62f591 Fix spelling & grammar in comments, docs, and messages 2020-07-21 15:17:23 -04:00
Josh Chandler 79e44f4033 fixed camera2D showing incorrect bounds in editor 2020-07-18 18:01:37 -04:00
Rémi Verschelde 6497a3fb50
Merge pull request #40291 from hinlopen/dialog-size
Resize various dialogs
2020-07-15 12:13:33 +02:00
Rémi Verschelde c8523038cc
Merge pull request #40268 from DanielZTing/master
Fix cancel/OK button order on macOS
2020-07-15 09:21:04 +02:00
Stijn Hinlopen 526e060b73 Resize dialogs (FileDialog, EditorFileDialog, Reparent, SceneTreeDialog and resource depency dialogs). 2020-07-14 14:35:22 +02:00
Rémi Verschelde ca5958d180
Merge pull request #38440 from Paulb23/syntax_highlighter_refactor
Syntax highlighter refactor
2020-07-14 09:49:02 +02:00
Rémi Verschelde c5d02fdffc Revert "Merge pull request #38341 from verdog/camera-bounds-fix"
This reverts commit 08bbb3f161.
2020-07-11 19:05:48 +01:00
Paulb23 bc4cee4458 Extract Syntax highlighting from TextEdit and add EditorSyntaxHighlighter
- Extacted all syntax highlighting code from text edit
- Removed enable syntax highlighting from text edit
- Added line_edited_from signal to text_edit
- Renamed get/set_syntax_highlighting to get/set_syntax_highlighter
- Added EditorSyntaxHighligher
2020-07-11 17:09:58 +01:00
Paulb23 156daddaaf Expose Syntax highlighter for editor plugins 2020-07-11 15:40:00 +01:00
Daniel Ting 9605fc54c7 Fix cancel/OK button order on macOS
The macOS platform convention regarding button order is cancel on left,
OK on right.
2020-07-10 15:10:11 -05:00
Rémi Verschelde 08bbb3f161
Merge pull request #38341 from verdog/camera-bounds-fix
Fix Camera2D incorrect preview bounds
2020-07-10 19:35:26 +02:00
coldragon f2a01b0c6b Fix crash on editor without a feature profile 2020-07-07 17:45:12 +02:00
Rémi Verschelde b00e8ffb22
Merge pull request #40163 from pycbouh/fix-saving-empty-scene
Improve scene preview generation for empty scenes and disabled features
2020-07-06 22:52:49 +02:00
Yuri Sizov 6c8a9b7690 Improve scene preview generation for empty scenes and disabled features 2020-07-06 18:55:24 +03:00
Yuri Sizov 49f6dc5004 Expose methods to play scene from plugin code 2020-07-06 17:39:16 +03:00
bruvzg df968d577a
[macOS] Implement seamless display scaling. 2020-07-04 10:36:33 +03:00
Rémi Verschelde f9c2f35dd9
Merge pull request #39415 from SkyLucilfer/PotGeneration
Add POT generation feature in Editor
2020-07-02 22:22:46 +02:00
Rémi Verschelde d121248562
Merge pull request #40049 from hinlopen/remove-pane-drag
Remove unused class PaneDrag
2020-07-02 18:33:36 +02:00
Rémi Verschelde 938e2c53ec
Merge pull request #32428 from willnationsdev/script-var-order
Add script class categories to EditorInspector.
2020-07-02 16:06:24 +02:00
SkyJJ efb4609425 Add translation parser plugin support 2020-07-02 14:47:35 +02:00
Stijn Hinlopen c3d9f12a10 Remove unused class PaneDrag 2020-07-02 13:50:31 +02:00
willnationsdev 644de52ca9 Add script class categories to EditorInspector. 2020-07-01 14:51:21 -05:00
Rémi Verschelde 8a484756de
Merge pull request #39076 from rileylyman/editor_tab_names
Implement filename disambiguation for scene tabs and script names
2020-07-01 16:46:32 +02:00
Rémi Verschelde 117e0106ea
Merge pull request #39928 from hinlopen/qo-open-scene
Open scene selected from Quick Open dialog
2020-07-01 16:44:54 +02:00
Rémi Verschelde 372136fe75 Environment: Refactor code for readability + more
- Makes all boolean setters/getters consistent.
- Fixes bug where `glow_hdr_bleed_scale` was not used.
- Split CameraEffects to their own source file.
- Reorder all Environment method and properties declarations,
  definitions and bindings to be consistent with each other
  and with the order of property bindings.
- Bind missing enum values added with SDFGI.
- Remove unused SDFGI enhance_ssr boolean.
- Sync doc changes after SDFGI merge and other misc changes.
2020-07-01 14:44:45 +02:00
Juan Linietsky 438c380458 Add a separate application focus/in notification out from Window focus notification. 2020-06-30 10:40:06 -03:00
Stijn Hinlopen 1ce3a77a42 Open scene selected from Quick Open dialog. 2020-06-29 16:36:12 +02:00
Tomasz Chabora eb6a367cb7 Generate inspector preview for Image resources 2020-06-27 22:03:20 +02:00
rileylyman 4285211f40 implement generic filename disambiguation
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.
2020-06-26 16:12:08 -07:00
Hugo Locurcio e6352d1daa
Keep the bottom panel visible when enabling the distraction-free mode
- Document the `EditorInterface.distraction_free_mode` property.

This closes https://github.com/godotengine/godot-proposals/issues/951.
2020-06-26 22:09:08 +02:00
Juan Linietsky 201d606b3d Addition of SDFGI for open world global illumination
Move GI to a deferred pass
2020-06-26 11:06:48 -03:00
Andrii Doroshenko (Xrayez) c177308f80 Don't use arbitrary theme editor icons for scripts with the same name
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.
2020-06-25 02:23:39 +03:00
Andrii Doroshenko (Xrayez) 4a86e2bb76 Optimize class icon loading
`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.
2020-06-24 13:08:27 +03:00
Hugo Locurcio 31b7f02a29
Remove ToolButton in favor of Button
ToolButton has no redeeming differences with Button;
it's just a Button with the Flat property enabled by default.
Removing it avoids some confusion when creating GUIs.

Existing ToolButtons will be converted to Buttons, but the Flat
property won't be enabled automatically.

This closes https://github.com/godotengine/godot-proposals/issues/1081.
2020-06-19 20:49:49 +02:00
Hugo Locurcio a7b2f3d41a Tweak the invalid preset error message to mention `export_presets.cfg` 2020-06-09 10:24:55 +02:00
Rémi Verschelde c080ec5da2 PackedScene: Prevent crash when root node has `parent` attribute
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.
2020-06-08 13:07:07 +02:00
Marcus Brummer 85175c67b8 Enable text selection in execute output of EditorNode 2020-06-04 14:38:55 +02:00
Hugo Locurcio cc1859efed
Add a getter and property for the editor distraction-free mode 2020-06-03 22:18:49 +02:00
Rémi Verschelde 1a43d3b396
Merge pull request #38451 from eduardonunesp/feature/command-comma-preferences
Using command + comma on macOS as default shortcut for editor settings
2020-05-16 13:24:15 +02:00
Rémi Verschelde 0ee0fa42e6 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
2020-05-14 21:57:34 +02:00
Rémi Verschelde 07bc4e2f96 Style: Enforce separation line between function definitions
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
  -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
  -o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```

This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.

This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde 0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde 1f6f364a56 Port member initialization from constructor to declaration (C++11)
Using `clang-tidy`'s `modernize-use-default-member-init` check and
manual review of the changes, and some extra manual changes that
`clang-tidy` failed to do.

Also went manually through all of `core` to find occurrences that
`clang-tidy` couldn't handle, especially all initializations done
in a constructor without using initializer lists.
2020-05-14 10:01:56 +02:00
Rémi Verschelde 1c18be1cc9
Merge pull request #38637 from Calinou/editor-rename-revert-scene-bind
Rename the editor action "Revert Scene" to "Reload Saved Scene"
2020-05-13 12:58:40 +02:00
Fabio Alessandrelli d79e28c302 Support multiple debug protocols. 2020-05-12 15:09:13 +02:00
Hugo Locurcio 2962819d1c Rename the editor action "Revert Scene" to "Reload Saved Scene"
This option can be used to workaround various issues with stuff
not reloading properly when changes are made.
The option was renamed to clarify the fact that it actually
reloads the scene saved on the filesystem.
2020-05-12 14:42:09 +02:00
Eduardo Nunes Pereira 75f77f751e Using command + comma on macOS as default shortcut for editor settings 2020-05-11 13:04:34 +02:00
Juan Linietsky 1bea8e1eac New lightmapper
-Added LocalVector (needed it)
-Added stb_rect_pack (It's pretty cool, we could probably use it for other stuff too)
-Fixes and changes all around the place
-Added library for 128 bits fixed point (required for Delaunay3D)
2020-05-10 15:59:09 -03:00
Rémi Verschelde e956e80c1f Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
Part of #33027, also discussed in #29848.

Enforcing the use of brackets even on single line statements would be
preferred, but `clang-format` doesn't have this functionality yet.
2020-05-10 13:12:16 +02:00
Rémi Verschelde 878adb22b7
Merge pull request #37717 from qarmin/world_fix
Change non-existent World to World3D
2020-05-04 16:37:40 +02:00
Josh Chandler 8230e08f18 fixed camera2D showing incorrect bounds in editor 2020-04-30 12:25:39 -04:00
Rémi Verschelde 75e4ccc00e
Merge pull request #36427 from nekomatata/scene-thumbnail-flipped
Fixed flipped scene preview thumbnail
2020-04-28 21:59:12 +02:00
Rémi Verschelde fdf58a5858 Rename InputFilter back to Input
It changed name as part of the DisplayServer and input refactoring
in #37317, with the rationale that input no longer goes through the
main loop, so the previous Input singleton now only does filtering.

But the gains in consistency are quite limited in the renaming, and
it breaks compatibility for all scripts and tutorials that access
the Input singleton via the scripting language. A temporary option
was suggested to keep the scripting singleton named `Input` even if
its type is `InputFilter`, but that adds inconsistency and breaks C#.

Fixes godotengine/godot-proposals#639.
Fixes #37319.
Fixes #37690.
2020-04-28 15:19:49 +02:00
Hugo Locurcio 79e4e26738
Require Ctrl for switching between editors, bind F2 to Rename Node
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.
2020-04-25 15:48:08 +02:00
Juan Linietsky ae09b55a19 Exposed RenderingDevice to script API
Also added an easier way to load native GLSL shaders.

Extras:

Had to fix no-cache for subresources in resource loader, it was not properly working, making shaders not properly reload.

Note:

The precommit hooks are broken because they don't seem to support enums from one class being used in another.
Feel free to fix this after merging this PR.
2020-04-20 21:21:58 -03:00
Juan Linietsky 49d0c6a5c9 Ability to create local RenderingDevice instances. 2020-04-18 21:47:17 -03:00
qarmin 559bc3ca87 Change non-existent World to World3D 2020-04-18 11:00:51 +02:00
Juan Linietsky 0e1c66d9fc Implement global and per instance shader uniforms.
Adds two keywords to shader language for uniforms:
-'global'
-'instance'

This allows them to reference values outside the material.
2020-04-17 12:35:41 -03:00
Rémi Verschelde 06748a2b5f
Merge pull request #37749 from clayjohn/Vulkan-improved-ss
Add vogel filter and settings to soft shadows
2020-04-13 00:39:37 +02:00
Juan Linietsky a57dc398db Implement MSAA 2020-04-12 15:33:57 -03:00
clayjohn 621f6f09a8 Add proper quality settings to soft shadows 2020-04-10 23:09:17 -07:00
Juan Linietsky 4ffc0d6b3f Refactored shadowmapping.
- Made shadow bias size independent, so it will remain when changing light or camera size.
- Implemented normal offset bias, which greatly enhances quality.
- Added transmission to subsurface scattering
- Reimplemented shadow filter modes

Closes #17260
2020-04-08 11:19:43 -03:00
Rémi Verschelde da887714be
Merge pull request #37570 from reduz/implement-sss
Re-implement subsurface scattering.
2020-04-04 17:14:48 +02:00
Juan Linietsky c54f80d35c Re-implement subsurface scattering.
The size settings are more "just works", with default scale and depth scale
values that don't need much tweaking.

Additionally, a "skin" mode was added so skin looks better.
EDIT: Cleaned up SSR filter shader a bit.
2020-04-04 11:44:28 -03:00
Michael Alexsander ae34c53590 Take borders into account with floating dock initial position/size 2020-04-04 09:48:59 -03:00
Rémi Verschelde 4a0e99f197
Merge pull request #37363 from YeldhamDev/floating_dock_enhancements
General enhancements to floating docks
2020-04-03 17:39:30 +02:00
Rémi Verschelde 6a38ce1b31
Merge pull request #37512 from reduz/implement-ssr
Re-Added screen space reflection.
2020-04-02 17:17:27 +02:00
Rémi Verschelde f1e943f6ce
Merge pull request #35720 from Calinou/remove-request-docs-button
Remove Request Docs button in the script editor due to various issues
2020-04-02 16:45:01 +02:00
Juan Linietsky 87c658b304 Re-Added screen space reflection. 2020-04-02 11:25:21 -03:00
Hugo Locurcio 2f6f029a75 Remove Request Docs button in the script editor due to various issues
The Request Docs button is partly responsible for layout overflow
issues on narrow displays, such as #31133.

It also tended to attract spam and low-effort issues that were
difficult to act upon. A "Send Docs Feedback" menu option has been added
to replace it.
2020-04-02 14:07:03 +02:00
lupoDharkael 95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Juan Linietsky 89e1263117 Move glow upscale quality to a global setting, for consistency 2020-03-30 10:46:03 -03:00
Michael Alexsander 805ee0ee6c General enhancements to floating docks 2020-03-27 16:49:41 -03:00
Juan Linietsky a6f3bc7c69 Renaming of servers for coherency.
VisualServer -> RenderingServer
PhysicsServer -> PhysicsServer3D
Physics2DServer -> PhysicsServer2D
NavigationServer -> NavigationServer3D
Navigation2DServer -> NavigationServer2D

Also renamed corresponding files.
2020-03-27 15:21:27 -03:00
Rémi Verschelde d1acbbce7f Rename more 2D and 3D nodes to follow convention
Rename editor plugins to match the new node names.
2020-03-27 16:26:34 +01:00
Juan Linietsky eaae4b6408 Renamed 2D and 3D nodes to make their types explicit
Fixes #30736.
2020-03-27 14:54:04 +01:00
bruvzg 15a9f94346 Add macOS DisplayServer implementation.
Change global menu to use Callable, add support for check items and submenus.
2020-03-26 16:24:05 +01:00
Juan Linietsky c7b4dcae2f Open sub-windows as embedded if the OS does not support them 2020-03-26 15:49:43 +01:00
Juan Linietsky 441f1a5fe9 Popups are now windows also (broken!) 2020-03-26 15:49:42 +01:00
Juan Linietsky 4758057f20 Working multiple window support, including editor 2020-03-26 15:49:40 +01:00
Juan Linietsky 8e6960a69e Refactored input, goes all via windows now.
Also renamed Input to InputFilter because all it does is filter events.
2020-03-26 15:49:39 +01:00
Juan Linietsky 9e08742de8 Added a Window node, and made it the scene root.
Still a lot of work to do.
2020-03-26 15:49:38 +01:00
Juan Linietsky f8a79a97c7 Effective DisplayServer separation, rename X11 -> LinuxBSD 2020-03-26 15:49:34 +01:00
Juan Linietsky 4396e98834 Refactored Input, create DisplayServer and DisplayServerX11 2020-03-26 15:49:32 +01:00
clayjohn 61a74739ca Working sky shader implementation 2020-03-21 20:43:44 -07:00
Rémi Verschelde 194d2ccb72
Merge pull request #37116 from neikeq/issue-12917
Sync csproj when files are changed from the Godot FileSystem dock
2020-03-18 16:07:49 +01:00
Ignacio Etcheverry fe0b783e70 Expose FileSystemDock to the scripting API and fixed signals
Fixed FileSystemDock's `file_removed` and `folder_removed` signals not being
emitted because the emitted was using the wrong signal name.
2020-03-18 15:06:07 +01:00
Rémi Verschelde faca5bafe8
Merge pull request #36993 from van800/editor_metadata
For third-party tools - editor_path is stored in project's editor settings
2020-03-18 10:39:06 +01:00
Rémi Verschelde cb282c6ef0 Style: Set clang-format Standard to Cpp11
For us, it practically only changes the fact that `A<A<int>>` is now
used instead of the C++03 compatible `A<A<int> >`.

Note: clang-format 10+ changed the `Standard` arguments to fully
specified `c++11`, `c++14`, etc. versions, but we can't use `c++17`
now if we want to preserve compatibility with clang-format 8 and 9.
`Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-17 07:36:24 +01:00
Ivan.Shakhov 2f151068b5 for third-party tools - editor_path is stored in project's editor settings 2020-03-12 13:59:48 +01:00
Rémi Verschelde e162c07af9
Merge pull request #36920 from Faless/debugger/more_instances
Move Debug menu logic to DebuggerEditorPlugin, allow 4 debug instances
2020-03-09 12:01:14 +01:00
Haoyu Qiu 9ed61a70cc Keeps the filename when marking scene as unsaved 2020-03-09 10:26:57 +08:00
Fabio Alessandrelli 4d623b70d7 Move Debug menu logic to DebuggerEditorPlugin 2020-03-08 22:57:48 +01:00
Thakee Nathees 3275e8488b Fix EditorFolding crash when switching scenes 2020-03-05 18:19:58 +05:30
Rémi Verschelde f742dabafe Signals: Manually port most of remaining connect_compat uses
It's tedious work...

Some can't be ported as they depend on private or protected methods
of different classes, which is not supported by callable_mp (even if
it's a class inherited by the current one).
2020-02-28 14:24:09 +01:00
Rémi Verschelde 01afc442c7 Signals: Port connect calls to use callable_mp
Remove now unnecessary bindings of signal callbacks in the public API.
There might be some false positives that need rebinding if they were
meant to be public.

No regular expressions were harmed in the making of this commit.
(Nah, just kidding.)
2020-02-28 14:24:09 +01:00
Rémi Verschelde b7b3978684
Merge pull request #36556 from RandomShaper/rework_mutex
Reimplement `Mutex` with C++'s `<mutex>` (plus more)
2020-02-28 00:26:01 +01:00
Aaron Franke b8a79d7530
Make internal editor key order consistent
Godot already displays controls in the order Control+Shift+Alt, so the order used with the bitmask flags should be the same.
2020-02-27 03:32:58 -05:00
Pedro J. Estébanez 18fbdbb456 Reimplement Mutex with C++'s <mutex>
Main:
- It's now implemented thanks to `<mutex>`. No more platform-specific implementations.
- `BinaryMutex` (non-recursive) is added, as an alternative for special cases.
- Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes.
- Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts.
- A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this.
- `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`.
- Thread-safe utilities are therefore simpler now.

Misc.:
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
- Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock).
- `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
2020-02-26 20:40:10 +01:00
Juan Linietsky 33b5c57199 Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.
- Renames PackedIntArray to PackedInt32Array.
- Renames PackedFloatArray to PackedFloat32Array.
- Adds PackedInt64Array and PackedFloat64Array.
- Renames Variant::REAL to Variant::FLOAT for consistency.

Packed arrays are for storing large amount of data and creating stuff like
meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of
memory. That said, many users requested the ability to have 64 bits packed
arrays for their games, so this is just an optional added type.

For Variant, the float datatype is always 64 bits, and exposed as `float`.

We still have `real_t` which is the datatype that can change from 32 to 64
bits depending on a compile flag (not entirely working right now, but that's
the idea). It affects math related datatypes and code only.

Neither Variant nor PackedArray make use of real_t, which is only intended
for math precision, so the term is removed from there to keep only float.
2020-02-25 12:55:53 +01:00
Rémi Verschelde 2cf6ac6c50 Replace FALLTHROUGH macro by C++17 [[fallthrough]]
This attribute is now part of the standard we target so we no longer
need compiler-specific hacks.

Also enables -Wimplicit-fallthrough for Clang now that we can properly
support it. It's already on by default for GCC's -Wextra.

Fixes new warnings raised by Clang's -Wimplicit-fallthrough.
2020-02-23 00:52:50 +01:00
PouleyKetchoupp 8f5ac3dbfc Fixed flipped scene preview thumbnail
No need to flip the image generated from the viewport texture anymore.
2020-02-21 17:58:05 +01:00
Fabio Alessandrelli cbc450c0e5 Huge Debugger/EditorDebugger refactor. 2020-02-21 11:12:03 +01:00
Juan Linietsky 69c95f4b4c Reworked signal connection system, added support for Callable and Signal objects and made them default. 2020-02-20 08:24:50 +01:00
Juan Linietsky 3205a92ad8 PoolVector is gone, replaced by Vector
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
2020-02-18 10:10:36 +01:00
Juan Linietsky 867d073b98 Changed logic and optimized ObjectID in ObjectDB and Variant, removed RefPtr. 2020-02-15 08:36:04 -03:00
Rémi Verschelde 282c8dda98
Merge pull request #36066 from timothyqiu/float-step-range
Fixes range hint for default_float_step
2020-02-14 16:17:31 +01:00
Doug Richardson edf907213e
Disable video driver option in editor since switching to GLES2 would
currently cause a crash on restart.

Fixes #36190.
2020-02-13 12:30:10 -08:00
Rémi Verschelde 386968ea97 Remove obsolete GLES3 backend
Due to the port to Vulkan and complete redesign of the rendering backend,
the `drivers/gles3` code is no longer usable in this state and is not
planned to be ported to the new architecture.

The GLES2 backend is kept (while still disabled and non-working) as it
will eventually be ported to serve as the low-end renderer for Godot 4.0.

Some GLES3 features might be selectively ported to the updated GLES2
backend if there's a need for them, and extensions we can use for that.

So long, OpenGL driver bugs!
2020-02-13 10:36:44 +01:00
Yuri Roubinsky 516cd821c0 Added high-end (Vulkan) label to some functions in visual shader 2020-02-12 23:17:00 +03:00
Juan Linietsky cf8c679a23 ObjectID converted to a structure, fixes many bugs where used incorrectly as 32 bits. 2020-02-12 14:24:54 -03:00
K. S. Ernest (iFire) Lee f65debaf68 Don't flip screenshot. 2020-02-11 10:10:42 -08:00
Juan Linietsky 2049dec79e Added normalmap guided roughness mipmap generator, and a global roughness limiter. 2020-02-11 12:16:01 +01:00
Juan Linietsky bed8980ca5 Re-implemented screen space ambient occlusion 2020-02-11 12:15:46 +01:00
Juan Linietsky f8b5c5f063 DOF fully implemented, can be edited on the fly. 2020-02-11 12:15:26 +01:00
Juan Linietsky acf0f6c8a7 GIProbes working. 2020-02-11 12:03:20 +01:00
Juan Linietsky 4aea9f74e6 Rewritten StreamTexture for better code reuse, added basis universal support 2020-02-11 12:02:36 +01:00
Juan Linietsky dd3682e5fe Modernized default 3D material, fixes material bugs. 2020-02-11 12:01:24 +01:00
Juan Linietsky 449df8f688 Base 3D engine done, still untested, though. 2020-02-11 11:59:25 +01:00
bruvzg eb48be51db Add static Vulkan loader.
Initial Vulkan support for Windows.
Initial Vulkan support for macOS.
2020-02-11 11:57:11 +01:00
Juan Linietsky e1b3444415 Bugfixes and ability to better specify filter and repeat modes everywhere.
Removes antialiased flag for draw_* methods.
2020-02-11 11:53:28 +01:00
Juan Linietsky 3f335ce3d4 Texture refactor
-Texture renamed to Texture2D
-TextureLayered as base now inherits 2Darray, cubemap and cubemap array
-Removed all references to flags in textures (they will go in the shader)
-Texture3D gone for now (will come back later done properly)
-Create base rasterizer for RenderDevice, RasterizerRD
2020-02-11 11:53:26 +01:00
Michael Alexsander 021fdb1b58 Remove AnimationTreePlayer node 2020-02-10 16:25:50 -03:00
Andrea Catania e6be3f68da - Integrated NavigationServer and Navigation2DServer.
- Added Navigation Agents and Obstacles.
- Integrated Collision Avoidance.

This work has been kindly sponsored by IMVU.
2020-02-10 14:38:52 +01:00
Haoyu Qiu dfe9825e00 Fixes range hint for default_float_step 2020-02-10 15:39:29 +08:00
Marcel Admiraal f0db13502a Remove duplicate WARN_PRINT macro. 2020-02-05 11:13:24 +01:00
Marcel Admiraal 5af3b4ca27 Remove duplicate ERR_PRINT macro. 2020-02-05 11:13:24 +01:00
PouleyKetchoupp 9c4a6cf745 Fixed Inspector update when a node is renamed
Whenever any node is renamed, EditorNode::_edit_current() is called and it resets plugins used for current edited properties. This change forces the inspector to update even though the same object is edited, to make sure all plugins are restored properly from unfolded properties/resources/etc.

Fixes #32832
2020-01-24 18:12:05 +01:00
Rémi Verschelde a565c93aeb Export: Properly disable resource preview thread
Fixes #26857.
Fixes #34433.
Fixes #34826.
2020-01-14 11:34:02 +01:00
Rémi Verschelde 017b7de2df EditorNode: Delay addon init to NOTIFICATION_READY
Fixes #25635.
2020-01-13 15:02:11 +01:00
Haoyu Qiu 047d66cc6f Fixes the New Window option in macOS dock menu 2020-01-13 08:58:12 +08:00
Rémi Verschelde 7c29ce4375 Export: Add dedicated --export-pack option to export data pack
The previous behavior relying on the provided extension was problematic
on macOS since .zip is the main extension used for the full project
export (binary + data pack).

We add a dedicated `--export-pack` command line option to define when
only the data pack should be exported. Its extension will still be
inferred from the path.

Fixes #23073.
2020-01-08 14:57:46 +01:00
Rémi Verschelde 5011afcb6a Export: Improve usability of command line interface
I'm barely scratching the surface of the changes needed to make the
--export command line interface easy to use, but this should already
improve things somewhat.

- Streamline `can_export()` templates check in all platforms, checking
  first for the presence of official templates, then of any defined
  custom template, and reporting on the absence of any.
  Shouldn't change the actual return value much which is still true if
  either release or debug is usable - we might want to change that
  eventually and better validate against the requested target.

- Fix discrepancy between platforms using `custom_package/debug` and
  `custom_template/debug` (resp. `release`).
  All now use `custom_template`, which will break compatibility for
  `export_presets.cfg` with earlier projects (but is easy to fix).

- Use `can_export()` when attempting a command line export and report
  the same errors that would be shown in the editor.

- Improve error reporting after a failed export attempt, handling
  missing template and invalid path more gracefully.

- Cleanup of unused stuff in EditorNode around the export workflow.

- Improve --export documentation in --help a bit.

Fixes #16949 (at least many of the misunderstandings listed there).
Fixes #18470.
2020-01-07 14:25:56 +01:00
Rémi Verschelde a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Rémi Verschelde 86a732b136
Merge pull request #34680 from Calinou/editor-export-nonzero-exit-code-error
Exit the editor export process with a non-zero exit code on error
2019-12-30 18:07:36 +01:00
Rémi Verschelde 388318ad4c
Merge pull request #34614 from qarmin/dont_create_preview_of_empty_scene
Don't create preview of empty scene.
2019-12-30 17:13:07 +01:00
Hugo Locurcio 79494992e4
Exit the editor export process with a non-zero exit code on error
This closes #34672.
2019-12-30 14:34:06 +01:00
Rafał Mikrut 542945f5f0 Don't create preview of empty scene. 2019-12-26 09:15:36 +01:00
Haoyu Qiu 078c0d75f2 Cleans up headers included in editor_node.h 2019-12-24 21:46:05 +08:00
Haoyu Qiu d53c392b34 Centers Dock Position text 2019-12-23 09:37:36 +08:00
Haoyu Qiu 7a9c337dfe Makes more strings in editor translatable
* File type names in file dialogs
* Layout option names
* Visual shader editor UI
2019-12-16 16:41:07 +08:00
Haoyu Qiu 6f178a2061 Fixes infinite loop when switching editor 2019-12-11 13:27:21 +08:00
Rémi Verschelde 2845e6a21a
Merge pull request #34040 from qarmin/unused_variable_more_precise_numbers
Removed unused variables, add some constants numbers
2019-12-10 08:25:31 +01:00
Rafał Mikrut ed1c4bc77d Removed unused variables, add some constants numbers 2019-12-10 05:13:02 +01:00
Haoyu Qiu 93f00c0303 Fixes prompt closes the wrong scene when exiting 2019-12-06 21:46:01 +08:00
PouleyKetchoupp dd552494eb Debug menu in editor doesn't hide on checkbox toggle
Fixes #33850
2019-11-25 16:25:54 +01:00
Rémi Verschelde 41634199c8 EditorNode: Improve tooltip for pause button
Closes #14742.
2019-11-14 11:44:20 +01:00
PouleyKetchoupp 824bc3fed8 Keep focus on the top-most node for multi-selection in scene tree
Makes behavior consistent with selecting/deselecting single nodes and fixes a regression about the focused node being lost when multi-selecting.

Fixes #33332
2019-11-10 09:37:51 +01:00
PouleyKetchoupp 133014c3fb Fixed errors when saving scene with a shrunk viewport
Handle viewport size larger than preview size but very close, when the ratio was 1 the size ended up being 0.

Fixes #33497
2019-11-09 21:16:19 +01:00
Michael Alexsander 36c4fd8935 Make the editor dimming smarter 2019-10-31 16:58:53 -03:00
Rémi Verschelde 35944aebde
Merge pull request #33019 from volzhs/class_icon
Resize custom class icon
2019-10-23 21:48:40 +02:00
volzhs 9131f70d8a Resize custom class icon 2019-10-24 03:55:56 +09:00
Rémi Verschelde 2d6cf9cc56
Merge pull request #33009 from ebert83/fix_editor_save_layout
Fix layout saving error
2019-10-23 15:31:48 +02:00
Thomas Ebert Hansen d62ab4ab10 Fix layout saving error
As a result of commit b49226e085 FileAccess::open no longer returns ERR_CANT_OPEN if the file cannot be found/opened.
Instead check against ERR_FILE_NOT_FOUND or ERR_FILE_CANT_OPEN.
2019-10-23 15:02:51 +02:00
Fabio Alessandrelli 2ae3631318 Fix EditorNode.get_editor_theme
EditorNode was not correctly setting the class memeber when creating the
theme, using a local variable instead.
Theme is now created before registering exporters (as they might need it).
2019-10-23 10:59:03 +02:00
Mark Riedesel 6a85614d86 expose EditorSpinSlider to GDScript 2019-10-20 11:54:35 -04:00
Michael Alexsander Silva Dias 4689ece741 Minor visual adjustment in drag preview of the scene and file tree editors 2019-09-30 13:36:49 -03:00
Ruslan Mullayanov 4d5298ed7d Fixed unable to open project data folder
Removed `default` case to prevent hiding such errors in the future.

Fixes #31939.
2019-09-26 08:17:07 +02:00
Rémi Verschelde dec10dd776
Merge pull request #32051 from qarmin/some_error_explanation
Added some obvious errors explanations
2019-09-25 11:51:54 +02:00
qarmin 17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
Stefano Coratti c46d172533 Fix #32263 - Hide Console Window stores opposite value 2019-09-23 22:06:34 +02:00
Rémi Verschelde fb12f54721
Merge pull request #32074 from KoBeWi/ninja_reload
Preserve folding when sub-scene is changed
2019-09-23 10:32:02 +02:00
Hugo Locurcio ba566dff2e
Distinguish editor-originating messages in the editor log
This fades out messages originating from the editor to make messages
printed by the project stand out more.

This also tweaks wording in some editor messages for consistency.
2019-09-20 01:59:02 +02:00
Tomasz Chabora 7e89ec2cd8 Preserve folding when sub-scene is changed 2019-09-10 14:43:46 +02:00
Rémi Verschelde 1046a9d143
Merge pull request #31927 from willnationsdev/csv-import
Add CSV import without translation.
2019-09-04 16:02:39 +02:00
willnationsdev 7ac0239afa Add CSV import without translation. 2019-09-03 19:37:20 -05:00
Rémi Verschelde 75cbcb596a
Merge pull request #30982 from iwek7/feature/skip_breakpoints
Adds skip-breakpoints feature
2019-09-04 01:31:08 +02:00
Rémi Verschelde 4967f303f5
Merge pull request #31461 from IronicallySerious/add-vcs-integration
VCS integration for Godot Editor
2019-09-04 01:09:24 +02:00
iwek7 617797c47c Adds skip-breakpoints feature 2019-09-03 20:49:09 +02:00
Twarit d98e944a19 Add VCS editor plugin UI elements to editor 2019-09-03 20:16:30 +05:30
Bhupendra Aole 1de3ec911f Default ColorPicker color mode setting
There is a new setting for Default ColorPicker color mode in Editor Settings->Interface->Inspector. Initially this setting will be RGB. Editor ColorPicker will always start with mode defined in this settiing.
Fixes #30755 and #30754
2019-08-31 00:34:33 -04:00
Rémi Verschelde ca652bbc47
Merge pull request #25353 from azagaya/master
Use also invisible tabs to calculate minimum size of tab container
2019-08-30 13:58:37 +02:00
azagaya fa6f86b886 Make tab containers in editor, project settings, and export dialog, to use hidden tabs for min size computation. 2019-08-30 08:33:32 -03:00
Rémi Verschelde 57c60cdc35
Merge pull request #31706 from akien-mga/android-custom-build-improvements
Buildsystem and workflow improvements to the new Android custom builds
2019-08-30 11:55:34 +02:00
Hugo Locurcio ef9f234d2b
Tweak the editor window dimming intensity, remove dim fade animation
The fade animation tended to give the editor a "sluggish" feel
when running at lower FPS (which is common in heavy 3D scenes),
so it's probably a good idea to remove it.

This also makes dimming less intense (50% instead of 60%).
2019-08-29 15:54:08 +02:00
Rémi Verschelde b1f294b3ac Android: Improve dialogs about custom build template
The language didn't make it clear that it's installing a *source* template
to the project folder, for later use when compiling custom APKs.

Fixes #28736.
2019-08-29 13:22:20 +02:00
bruvzg db6d4352ea
[macOS] Add methods to modify global and dock menus. Add ability to open multiple editor/project manager instances, recent/favourite project list to project manager dock menu and opened scene list to editor dock menu. 2019-08-26 16:45:49 +03:00
Rémi Verschelde 51def4dab9
Merge pull request #31523 from nekomatata/show-warning-loading
EditorNode::show_warning displays a console warning during project loading
2019-08-21 10:05:24 +02:00
PouleyKetchoupp a735afac95 EditorNode::show_warning displays a console warning instead of failing during project load
Fixes #31522
2019-08-21 09:05:30 +02:00
Rémi Verschelde 7b37321ae3
Merge pull request #31499 from nekomatata/fix-new-project-metadata
Setting project metadata doesn't fail when project_metadata.cfg doesn't exist
2019-08-21 08:54:32 +02:00
PouleyKetchoupp b49226e085 Support for file not found in ConfigFile::Load and handle a few specific cases
EditorSettings::set_project_metadata: creates project_metadata.cfg if it doesn't exist
EditorPlugin::get_config: removed (not used)

Fixes #31444
2019-08-21 08:32:55 +02:00
Rémi Verschelde 4e760096a9
Merge pull request #31443 from Calinou/editor-use-minimum-window-size
Define a minimum window size in the editor and project manager
2019-08-20 12:42:58 +02:00
Rémi Verschelde cc9f2a2d8b
Merge pull request #31401 from aaronfranke/no-init-scripts
Allow plugins to not have an init script
2019-08-17 22:09:17 +02:00
Hugo Locurcio c0eee235c4
Define a minimum window size in the editor and project manager
This prevents most UI elements from overlapping or being cut off
as a result of the window being too small.

This closes #20669.
2019-08-17 21:56:59 +02:00
Braden Bodily 71d71d55b5 Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in 'core/' and 'editor/'
Condensed some if and ERR statements. Added dots to end of error messages

Couldn't figure out EXPLAINC. These files gave me trouble: core/error_macros.h, core/io/file_access_buffered_fa.h (where is it?),
core/os/memory.cpp,
drivers/png/png_driver_common.cpp,
drivers/xaudio2/audio_driver_xaudio2.cpp (where is it?)
2019-08-17 12:33:15 +02:00
Aaron Franke ceb61fb784
Allow plugins to not have an init script 2019-08-15 17:52:07 -04:00
Tomasz Chabora cedee8281b Allow to create scene from FileSystem dock 2019-08-15 19:47:21 +02:00
Rémi Verschelde 8995d95da0
Merge pull request #31347 from neikeq/monodevelop-addin
C#: Add Ide Connection library and server for the editor
2019-08-14 11:39:41 +02:00
Hugo Locurcio 9e1c23a353
Reorganize various menus for consistency and conciseness
- Clean up the recent scripts dialog to match the recent scenes dialog
- Add "..." at the end of shortcuts that cause a modal dialog to appear

This closes #31148.
2019-08-13 11:52:10 +02:00
Rémi Verschelde f5f16e57fd
Merge pull request #30804 from hbina/fix_issue_30160
Fixed crash when making subresource unique in inspector dock
2019-08-07 11:43:16 +02:00
Hanif Bin Ariffin befc2c0894 add forgotten calls to inspector_dock->update(...).
I believe many calls to the said function was mistakenly left out leading to InspectorDock having a pointer to deleted values.
As such, this commit introduces many such calls to inspector_dock where I believe is appropriate...
2019-08-06 18:02:36 -04:00
Rémi Verschelde 52cfb5f579
Merge pull request #31121 from willnationsdev/plugin-select-editor
Let EditorPlugins set editor/distraction-free mode
2019-08-06 16:43:49 +02:00
Will Nations 2e3264259b Let EditorPlugins set editor/distraction-free mode 2019-08-06 08:48:00 -05:00
Rémi Verschelde fa35a73f0a
Merge pull request #31116 from sparkart/add_quit_shortcut
Add Shortcut Settings for Quitting Editor
2019-08-05 22:02:11 +02:00
Emmanuel Barroga 8e4ae09639 Add Shortcut Settings for Quitting Editor
Adds the ability to change the shortcut keys in Editor Settings for quitting the editor.
2019-08-05 11:53:42 -07:00
merumelu dcd551bf78 Remove Editor dependency from SceneTree 2019-08-05 19:46:23 +02:00
Ignacio Etcheverry 0b94203a79 C#: Add Ide Connection library and server for the editor
This will be used for communicating between the Godot editor and external IDEs/editors, for things like opening files, triggering hot-reload and running the game with a debugger attached.
2019-08-04 01:57:53 +02:00
Kanabenki 648313ab8a Don't add unsaved scene to previous scenes list 2019-07-31 23:49:16 +02:00
Rémi Verschelde 7d76f3b393
Merge pull request #30944 from YeldhamDev/bottom_panel_icon_simplify
Make the expand icon in the bottom panel always be the same
2019-07-30 09:27:33 +02:00
Michael Alexsander Silva Dias d6988b7d2b Make the expand icon in the bottom panel always be the same 2019-07-29 18:08:05 -03:00
Kanabenki a8ac739a5e Add Undo Close Tab option in tabs context menu 2019-07-27 16:51:24 +02:00
Rémi Verschelde e4ec59b6ae
Merge pull request #30763 from Calinou/editor-add-version-info
Display version information in the editor at all times
2019-07-26 19:08:42 +02:00
Hugo Locurcio 6f6a9d9c09
Simplify editor settings related to window dimming
Only a single checkbox is now exposed to control whether the editor
window should be dimmed when opening a popup. The main use case
for disabling it is picking colors from the editor window while
a popup is open.
2019-07-26 15:29:04 +02:00
Hugo Locurcio dee9e9dc62
Display version information in the editor at all times
This closes #27811.
2019-07-25 21:05:36 +02:00
Rémi Verschelde d844e30614 Inspector: Make default float step configurable
Also allow lifting the decimal step formatting with a hint range step
of 0. A new `range_step_decimals()` is added for this to avoid breaking
compatibility on the general purpose `step_decimals()` (which still
returns 0 for an input step of 0).

Supersedes #25470.
Partial fix for #18251.
2019-07-23 17:31:38 +02:00
Michael Alexsander Silva Dias 9be52a5e0f Move "Open Screenshot" from the "Editor" menu to the editor settings 2019-07-23 02:05:29 -03:00
Rémi Verschelde d15cf7b672
Merge pull request #30576 from qarmin/lgtm_coverage
Changed some code reported by LGTM and Coverity
2019-07-20 12:00:13 +02:00
qarmin 6cbaf7662f Changed some code showed in LGTM and Coverage 2019-07-20 08:09:57 +02:00
Bojidar Marinov 4f72178868
Make custom types more subtle and more useful
Implements #6067 (aaronfranke's idea)
Fixes #26980
2019-07-19 22:33:58 +03:00
Nils ANDRÉ-CHANG 7a1b399df2 Use switch instead of if statement 2019-07-15 17:21:34 +01:00
Bojidar Marinov eed2251f17
Add a way to copy the text of warnings shown in the editor
Closes #20662
2019-07-09 21:11:31 +03:00
Bojidar Marinov e222615e97
Fix editor remaining dimmed after certain actions
Fixes #30368
2019-07-06 17:37:40 +03:00
Rémi Verschelde 595763e0a0
Revert "Add editor menu to open the project data "user://" location." 2019-07-05 12:37:42 +02:00
Rémi Verschelde 3676100964
Merge pull request #30336 from fire/open_project_data
Add editor menu to open the project data "user://" location.
2019-07-05 11:40:28 +02:00
K. S. Ernest (iFire) Lee 44df7c8b9b Add editor menu to open the project data "user://" location. 2019-07-05 01:07:11 -07:00
Rémi Verschelde 133a07ed2d
Merge pull request #30327 from Calinou/editor-dim-window-quitting
Dim the editor window while it's quitting
2019-07-05 09:44:43 +02:00
Hugo Locurcio 492c3196ae
Dim the editor window while it's quitting
This makes it clearer that the editor window is busy while it's quitting
(which can take a while on slower PCs).
This also makes it feel more responsive to user input.

Note that the effect is only visible if
"Interface > Editor > Quit Confirmation" is disabled in the
Editor Settings, as the quit confirmation already makes
the editor window dim while quitting.
2019-07-04 23:47:47 +02:00
Hugo Locurcio acbd0fea97
Use CheckBoxes in the editor instead of CheckButtons when applicable
CheckButtons should only be used if toggling them has an
immediate effect. Otherwise, CheckBoxes should be used.
2019-07-04 17:32:59 +02:00
Fabio Alessandrelli c798173332 Fix editor crash when StreamPeerSSL is unavilable.
The fix for EditorNode is a bit hacky, but the handling of the buttons
and features there is hacky too (based on enums that might not reflect
the actual state).
2019-07-02 15:34:34 +02:00
Rémi Verschelde 98879be276
Merge pull request #27510 from fire/screenshot_editor
Add editor screenshot on control - f12.
2019-07-02 11:30:16 +02:00
K. S. Ernest (iFire) Lee 05de0eafab Add editor screenshot on control - f12. 2019-07-01 13:39:21 -07:00
Rémi Verschelde d17eac735c
Merge pull request #29815 from NilsIrl/plus_file_1
Replace ` + "/" + ` with `String::file_add()`
2019-07-01 12:06:35 +02:00
Chaosus da7cf8b49f Added convertor from VisualShader to Shader 2019-06-28 19:54:43 +03:00
Thomas ten Cate 05b67514a6 Make visibility of update spinner editor-wide, hidden by default
- Make visibility of the spinner and "update always" option editor-wide,
  rather than per-project metadata.
- Add options "Show Update Spinner" and "Update Continuously" under
  Editor Settings > Interface > Editor. Both options are false by
  default.
- Rename some variables and constants to be more consistent and clearer:
  "update always" -> "update continuously", "update changes" -> "update
  when changed", "update menu" -> "update spinner", "circle" -> "update
  spinner".

Fixes #23738.
2019-06-25 14:57:44 +02:00
Rémi Verschelde 30383a1cdc
Merge pull request #29376 from hilfazer/editor_layouts_dialog
Saving/deleting editor layouts dialog with layout list
2019-06-23 23:56:52 +02:00
Nils ANDRÉ-CHANG d2833d4f4d Replace ` + "/" + ` with `String::file_add()` 2019-06-23 13:33:50 +01:00
hilfazer 9986cf7005 editor save/delete layout dialog with layout list 2019-06-21 19:38:04 +02:00
Luka Dornhecker ad504b926f Add option to toggle console window on Windows
This is an editor setting and its value can also be toggled
using an entry in the Editor toolbar. The console will still
appear briefly when starting the project manager or editor,
as it's still compiled as console application.

Does not impact exported games, which will still run without
console in release and with console in debug mode.

A project setting or export option could be added to disable
it in debug mode if there's demand for it, but that would
greatly reduce the usefulness of debug builds if Windows users
can no longer report error and crash messages.

Fixes #17889.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2019-06-20 16:55:52 +02:00
Rémi Verschelde d2e8b5bd18
Merge pull request #29493 from YeldhamDev/enhance_fix_feature_profile
Enhancements and fixes for the editor feature profile
2019-06-19 00:14:05 +02:00
Rémi Verschelde b5459d9f0a
Merge pull request #29830 from NilsIrl/remove_useless
Remove useless cast from c-string to String
2019-06-17 11:00:01 +02:00
Rémi Verschelde e864237f1a i18n: Fix extract.py support for new TTRC
Also make compatible with Python 3.
2019-06-16 22:02:44 +02:00
Nils ANDRÉ-CHANG 640ed6baba Remove useless cast from c-string to String 2019-06-16 13:12:01 +01:00
Michael Alexsander Silva Dias 484127c88f Enhancements and fixes for the editor feature profile 2019-06-12 21:46:53 -03:00
Rémi Verschelde 971b5160c6
Merge pull request #29306 from qarmin/small_code_fixes
Small fixes to unrechable code, possibly overflows, using NULL pointers
2019-06-12 12:49:21 +02:00
Rémi Verschelde 6d16f2f053 Fix error macro calls not ending with semicolon
It's not necessary, but the vast majority of calls of error macros
do have an ending semicolon, so it's best to be consistent.
Most WARN_DEPRECATED calls did *not* have a semicolon, but there's
no reason for them to be treated differently.
2019-06-11 14:49:34 +02:00
Hein-Pieter van Braam-Stewart 0ac7715a27 Fix moving and renaming files
This commit fixes several issues related to moving scenes and resources
in an open project.

* Don't try to reload scenes while not all scenes are updated yet.
* Don't use the UndoRedo system to update non-user initiated editor
state.
* Resave scenes after moving files and updating resource path(s).
2019-06-04 16:24:32 +02:00
qarmin 8245db869f Small fixes to unrechable code, possibly overflows, using NULL pointers 2019-06-03 21:52:50 +02:00
Rémi Verschelde a69436aa4e
Merge pull request #27309 from KoBeWi/main_scene_on_android
Ensure main scene is set when running on device
2019-05-31 16:55:46 +02:00
Tomasz Chabora 9e18e94dc1 Ensure main scene is set when running on device 2019-05-31 16:02:57 +02:00
Tomasz Chabora 847a74d588 Fix crash when inherit in rootless unsaved scene 2019-05-31 02:08:37 +02:00
Hugo Locurcio ac14efcdfb
Decrease the editor FPS cap when the window is unfocused
This decreases CPU/GPU usage when the window is unfocused, which can
be beneficial to laptop users.

This also makes the low-processor mode sleep project setting no longer
affect the editor. Instead, two new editor settings now define the
duration of sleeping when the editor is focused and unfocused.

This closes #24209 and partially addresses #29257.
2019-05-30 15:42:57 +02:00
Rémi Verschelde 3f11505f4f
Merge pull request #29253 from IronicallySerious/remove-duplicate-plugin
Remove duplicate audio bus plugin registry
2019-05-29 10:42:09 +02:00
Rémi Verschelde 80f7a19569
Merge pull request #28789 from mitchcurtis/quick-open
Add Quick Open dialog
2019-05-28 20:45:52 +02:00
Twarit 506436b28a Remove duplicate audio bus plugin registry 2019-05-28 23:56:04 +05:30
Mitch Curtis ffb6aab1f4 Add Quick Open dialog
This dialog searches every Resource-derived file in the project, making
it extremely useful for searching everything from audio files to scripts.

Unlike the Quick Open Script and Quick Open Scene dialogs, you don't need
to think about the type of file you're opening, just its name.

Shift + Alt + O was chosen to match the existing shortcuts for
Quick Open Scene and Quick Open Script.
2019-05-28 18:27:18 +02:00
Rémi Verschelde 47f00925dc
Merge pull request #28454 from homer666/popup-centered-maxsize
Add `popup_centered_clamped()` method to Popup
2019-05-28 11:36:41 +02:00
Rémi Verschelde 11f20c43d7
Merge pull request #28907 from dankan1890/contextual_help
ScriptEditor: Changed the shortcut for contextual help in ALT + F1
2019-05-24 19:55:42 +02:00
Max Hilbrunner ac58abfd58
Merge pull request #28970 from KoBeWi/a_wild_bug_appeared
Fix saving scenes when multi-closing scene tabs
2019-05-18 16:46:31 +02:00
Hugo Locurcio 2713b44da7
Fix "Open Project Data Folder" in the editor
The handling code also had to be moved as this option was moved
to the Tools submenu.
2019-05-18 14:35:13 +02:00
Tomasz Chabora 27e17fa5de Fix saving scenes when multi-closing scene tabs 2019-05-17 23:47:02 +02:00
Max Hilbrunner 05cb337f2d
Merge pull request #28587 from Daw11/lanczos
Implement Lanczos image filter
2019-05-16 23:25:48 +02:00
Michael Alexsander Silva Dias be8dc97be7 Fix leftover connection to the "Open" signal in FileSystemDock
Fixes #28903.
2019-05-15 11:25:52 -03:00
dankan1890 81e48e2cf3 ScriptEditor: Changed the shortcut for contextual help in ALT + F1, to resolve the conflict with the help menu opening shortcut. 2019-05-15 14:27:24 +02:00
Michael Alexsander Silva Dias dcf27c71b7 Make possible to create inherited scenes via the RMB menu in the FileSystem dock 2019-05-11 05:13:29 -03:00
Michael Alexsander Silva Dias 19b8c51e1d Change empty scene closing on new inherented scene to a better approach 2019-05-08 04:47:39 -03:00
Daw11 28bff3d1ad Implement Lanczos image filter 2019-05-05 14:03:56 +02:00
Rémi Verschelde 36d4f86ed9
Merge pull request #27707 from Calinou/tweak-message-wording
Improve wording of various messages and make casing more consistent
2019-04-30 11:10:36 +02:00
homer666 80e9e93e27 Add Popup::popup_centered_clamped method
- Also replace redundant duplicate code in editor dialogs with calls to popup_centered_clamped()
2019-04-30 05:35:43 +10:00
Hugo Locurcio f5940e2909
Limit the size of the Manage Editor Feature Profiles dialog
This makes it more readable on large monitors.
2019-04-26 18:49:37 +02:00
Rémi Verschelde f05dce3ee2
Merge pull request #28262 from KoBeWi/gotta_close_them_all
Add Close Others/Right/All for scene tabs
2019-04-25 22:46:46 +02:00
Tomasz Chabora 6169e755aa Add Close Others/Right/All for scene tabs 2019-04-25 18:14:36 +02:00
DixiE f06b62028e Save Layout When Scene Is Closed Via Context Menu 2019-04-23 22:37:02 +01:00
Hugo Locurcio 35a0162167
Improve wording of various messages and make casing more consistent
This also adds the number of selected projects to the confirmation
dialog that appears before removing projects.
2019-04-21 14:37:14 +02:00
Juan Linietsky 04847ef5f9 Added ability for multiple images to be imported as an atlas
This adds support for groups in the import system, which point to a single file.
Add property hint for saving files in file field
2019-04-19 15:56:34 -03:00
Tomasz Chabora 331f922359 Save opened scenes when necessary 2019-04-15 22:17:49 +02:00
Rémi Verschelde c8994b56f9 Style: Apply new changes from clang-format 8.0
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
2019-04-09 17:09:48 +02:00
Juan Linietsky 3474e1586d Changes to to feature profile editor
Changed "Disable Editor" to "Contextual Editor Enabled"
Do not show contextual editors for disabled classes.
2019-04-08 20:20:20 -03:00
Juan Linietsky a20235aeb0 Add ability to edit editor feature profiles
Allows enabling/disabling parts of the editor and storing/loading profiles for that.
2019-04-08 19:18:51 -03:00
Juan Linietsky dd03dcbd5a Android now (optionally) builds the template when exporting
Added new way to create add-ons
Removed old way to create add-ons
2019-04-07 15:46:52 -03:00
Rémi Verschelde 5881c6505b
Merge pull request #27414 from KoBeWi/drop_the_dir
Allow to drop folders onto editor
2019-04-22 12:01:32 +02:00
Rémi Verschelde 71bbe6eb01
Merge pull request #27979 from Paulb23/remember_script_state
Restore script editor state between sessions
2019-04-21 13:01:43 +02:00
Paulb23 6ea253aa77 Restore script editor state between sessions 2019-04-13 13:07:12 +01:00
Rémi Verschelde 694ec9b3d0
Merge pull request #26551 from ZahFox/editor-shortcuts
New shortcuts for the editor menu items
2019-04-07 13:49:12 +02:00
Rémi Verschelde 03581e49b7
Merge pull request #27151 from vorabrijesh/updated
Changed default shortcut for opening help menu to (Shift + F1)
2019-04-07 11:53:08 +02:00
vorabrijesh f1e4fd3e39 Change Help menu shortcut to Shift+F1: Fixes #3786 2019-04-07 01:45:26 +05:30
Rémi Verschelde fc370b3feb Fix -Wimplicit-fallthrough warnings from GCC 8
Adds `FALLTHROUGH` macro to specify when a fallthrough is intentional.
Can be replaced by `[[fallthrough]]` if/when we switch to C++17.

The warning is now enabled by default for GCC on `extra` warnings level
(part of GCC's `-Wextra`). It's not enabled in Clang's `-Wextra` yet,
but we could enable it manually once we switch to C++11. There's no
equivalent feature in MSVC for now.

Fixes #26135.
2019-04-05 15:14:53 +02:00
Rémi Verschelde de54ee975d
Merge pull request #27238 from ShyRed/cpu2dmask
Add Emission Mask to CPUParticle2D
2019-04-03 09:13:14 +02:00
Tomasz Chabora c0da243f04 Allow to drop folders onto editor 2019-03-26 13:33:38 +01:00
Pedro J. Estébanez 9c3ddf05cb Revert accidental commits
This reverts commit fb37284c02.
This reverts commit 4db0f51b9a.
2019-03-20 21:43:55 +01:00
Pedro J. Estébanez 4db0f51b9a Create live view dock [wip] 2019-03-20 20:44:43 +01:00
ShyRed dcd268e183 Add Emission Mask to CPUParticle2D
Add ability to load emission masks to CPUParticle2D.
2019-03-19 17:28:57 +01:00
Will Nations 2d106eb715 Fix inherited icons for script classes 2019-03-17 00:04:15 -05:00
Rémi Verschelde ffd115dd6f
Merge pull request #26935 from qarmin/show_class_name_icon_in_tabs
Show in tabs custom class icons
2019-03-16 11:04:03 -07:00
Michael Alexsander Silva Dias ebabb0ea65 Make bottom panel only try to hide editors when they're visible 2019-03-16 03:39:49 -03:00
qarmin 825a870f06 Show in tabs non default class icons 2019-03-11 22:54:23 +01:00
George Marques 25f9aee005
Allow class_name scripts to have nested inheritance 2019-03-09 00:47:27 -03:00
Juan Linietsky 6eac688952 Don't hide/show top editor if they did not change, fixes #26644 2019-03-06 12:42:01 -03:00
Juan Linietsky 5f079e2ef9 -Make tileset and meshlibrary edit in a separate inspector, fixes #26671
-Made relationship lines appear based on theme settings, not previous hack
-Fix drawing of relationship lines (was broken)
-Fix double initialization of theme settings
2019-03-06 12:12:42 -03:00
Juan Linietsky 472c94ce3e Remove the "Open Editor" button, it will open automatically. 2019-03-04 16:50:21 -03:00
Juan Linietsky 53bec9deeb Fix and restore text, material and mesh previewers. 2019-03-04 15:53:18 -03:00
Juan Linietsky e653c79ef7 Better warnings when resources can't be saved. Fixes #26531 2019-03-04 11:06:49 -03:00
Juan Linietsky a1e73dcc94 Add support for event accumlation (off by default, on for editor), fixes #26536 2019-03-03 19:53:13 -03:00
will 7a88002992 New shortcuts for the editor menu items 2019-03-03 15:24:58 -06:00
Bruno Lourenço ed7534a6aa Fix grid view button icon not showing on filesystem dock. 2019-03-03 15:02:51 +00:00
Paul Trojahn f3d94cc752 Fix misleading modified status of scenes
If a scene is instanced in another scene, any changes to the first
triggers _clear_undo_history in EditorNode::set_current_scene, which
increments the version in UndoRedo::clear_history. This results in a
modified status. Passing false to clear_history fixes this issue.
Fixes #25942
2019-03-01 18:27:37 +01:00
Juan Linietsky 9ca6ffa341 Save resources even if no scene is present, closes #26273 2019-02-27 20:00:40 -03:00
Rémi Verschelde 028303f167
Merge pull request #26373 from groud/fix_layout_loading
Fixes layout loading
2019-02-27 22:39:31 +01:00
Juan Linietsky d8f12c4343 Avoid docks to be overriden while scanning, fixes #26359 2019-02-27 18:14:59 -03:00
Gilles Roudiere 04fb1069cd Fixes layout loading 2019-02-27 21:36:12 +01:00
Juan Linietsky a5370b1b1b -Fix problem of order of import plugins, closes #26340
-Ensure resource previewer does not start until first import is done
2019-02-27 14:11:17 -03:00
Juan Linietsky eb2b9b88a9 Make sure restoring opened scenes happens after scanning is done. 2019-02-27 11:00:32 -03:00
Juan Linietsky caa42667e8 If resources on disk have subresources and they are edited, also save the resource on ctrl-s 2019-02-26 23:48:30 -03:00
Rémi Verschelde 68f675fba2
Merge pull request #26290 from groud/move_setting_to_layout
Move the FileSystem dock layout properties to the per-project layout file
2019-02-26 09:14:41 +01:00
Gilles Roudiere de95493de2 Move the FileSystem dock layout properties to the per-project layout file 2019-02-25 23:39:49 +01:00
Eric Rybicki 747b9ac870 Fix editor crash after disabling plugin that used forward_spatial_gui_input
Fixes #26124.
2019-02-25 17:11:04 +01:00
Juan Linietsky 7f63b0e8cd Added a workaround to avoid crashes due to how TileSet editor works, fixes #23672
Also fixed a few uninitialized memory variables.
2019-02-22 17:42:29 -03:00
Juan Linietsky 8b231b96e3 Implement a cleaner (and better) way to save imagedata from ImageTexture, fixes #18801 2019-02-21 20:49:42 -03:00
marxin 8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
Rémi Verschelde 74ef11d404
Merge pull request #26061 from qarmin/fix_res_error
Fix res:// error when dragging file from outside of editor
2019-02-20 17:28:05 +01:00
Michael Alexsander Silva Dias 0de15955ad Add small spacing between top bars in main editor and project manager 2019-02-20 12:08:52 -03:00
qarmin 2f0c4de1f0 Fix res:// error when dragging file to other file 2019-02-19 17:21:05 +01:00
Rémi Verschelde f5f2b5d4af
Merge pull request #25962 from willnationsdev/fix-missing-addon
Auto-cleanup missing addons
2019-02-18 10:09:58 +01:00
Will Nations 2d0fcd5c4a Auto-cleanup missing addons 2019-02-17 22:57:45 -06:00
Michael Alexsander Silva Dias da45f1bf85 Minor cleanup in the Project Manager 2019-02-12 08:25:09 -02:00
Michael Alexsander Silva Dias 3a70020c98 Cleanup editor's top bar of old nodes 2019-02-11 02:18:54 -02:00
QbieShay fe046de216 Root node of a scene is now selected when the scene is opened. 2019-02-08 22:50:39 +01:00
Rémi Verschelde 4cfce99955
Merge pull request #25355 from YeldhamDev/color_picker_changes
Make some small enhancements to the ColorPicker
2019-01-27 18:37:48 +01:00
Juan Linietsky a089061120 Fix pixelized previews, but also instances of breaking ImageTexture cache. Closes #25378. 2019-01-27 13:41:47 -03:00
Michael Alexsander Silva Dias 182f26fe5e Make some small enhancements to the ColorPicker 2019-01-27 12:44:39 -02:00
Juan Linietsky 5bd3f72878 Properly warn about the effects of changing an import type, as well as force editor restart. Fixes #23874 2019-01-25 17:23:56 -03:00
Juan Linietsky 32fa136cc7 Ability to keep images in ImageTexture cached while using editor, fixes #25243 2019-01-25 13:40:23 -03:00
Juan Linietsky e8d31cc765 Perform a cleaner exit for resource preview, fixes #24206 2019-01-17 09:09:39 -03:00
Rémi Verschelde b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Chaosus b26d2ac190 Fix "method not found" error when script is removed from object 2018-12-31 12:09:08 +03:00
Rémi Verschelde ac46862097
Merge pull request #24506 from JFonS/expose_gizmos
Expose the new gizmo plugin system to scripting
2018-12-30 15:42:30 +01:00
JFonS 6b15b4f904 Expose the new gizmo plugin system to scripting 2018-12-21 23:56:39 +01:00
Alexandre LittleWhite Laurent ca90dd302b Change global timestamp behaviour earlier 2018-12-16 23:39:17 +01:00
Rémi Verschelde 9df7ed59fb
Merge pull request #19501 from Zylann/custom_loaders
Added basic support for custom resource savers and loaders
2018-12-16 14:26:56 +01:00
Marc Gilleron 065e2670af Added basic support for custom resource savers and loaders 2018-12-15 05:34:53 +00:00
Rémi Verschelde bf59b73250
Merge pull request #20609 from YeldhamDev/menu_hover_explicit
Make opening menus with the same parent on mouse focus explicit
2018-12-09 23:15:33 +01:00
Michael Alexsander Silva Dias bc9cb0e6cd Cleanup some unused controls in the editor's top bar 2018-12-09 17:51:30 -02:00
Rémi Verschelde e4a2003b98
Merge pull request #22323 from williamd1k0/ignore-main-scene
Editor: Skip loading main scene if restore_scenes_on_load is used
2018-12-07 15:08:34 +01:00
Juan Linietsky ab9bbce311 Disable progress dialog on export from command line, stab at fixing #24031 2018-11-28 08:46:26 -03:00
Juan Linietsky 616b91b498 Added test to avoid saving cyclic scene instancing, fixes #9686 2018-11-27 18:56:31 -03:00
Juan Linietsky e6bc152de8 NORMALMAP was not working (no normal being used detected), fixes #9263 2018-11-27 18:05:20 -03:00
Juan Linietsky 0d69da8c0e Rewrite code for unfolding and make it automatic on scene load, which works better. 2018-11-25 10:47:33 -03:00
Rémi Verschelde da31d63f76
Merge pull request #23680 from YeldhamDev/unified_help_search_revived
Unified Class and Reference Search 2: Resurrection
2018-11-22 16:16:52 +01:00
Max Hilbrunner 998d3a30a5
Merge pull request #22983 from Ashafix/master
Better error message for malformed plugins
2018-11-21 12:18:15 +01:00
Juan Linietsky da0ec37aa9 Reworked how non-imported resources are reloaded on change, fixes #19852 2018-11-20 21:48:48 -03:00
Ray Koopa fddffa9eb8 Unify editor class and reference search
Co-authored-by: Michael Alexsander Silva Dias <michaelalexsander@protonmail.com>
2018-11-20 20:52:27 -02:00
Michael Alexsander Silva Dias da7d3c5a58 Make opening menus with the same parent on mouse focus explicit 2018-11-20 20:37:45 -02:00