summaryrefslogtreecommitdiff
path: root/editor/editor_plugin.cpp
AgeCommit message (Collapse)Author
2021-05-31Implement shader cachingreduz
* Shader compilation is now cached. Subsequent loads take less than a millisecond. * Improved game, editor and project manager startup time. * Editor uses .godot/shader_cache to store shaders. * Game uses user://shader_cache * Project manager uses $config_dir/shader_cache * Options to tweak shader caching in project settings. * Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled). * Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated). * Added shader compression with SMOLV: https://github.com/aras-p/smol-v
2021-05-04Provide a way to hook into Inspectors UndoRedo.Gilles Roudière
2021-04-12Expose edit_node() for editor pluginskobewi
2021-04-05Expose editor scale to the plugin APIYuri Sizov
2021-02-13Fix editor always redrawingreduz
-Only update rendering settings when project settings change -Fixes the update spinner (and editor rendering) updating all the time. -Added a "project_settings_changed" signal to EditorNode and EditorPlugin
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-28Merge pull request #44524 from madmiraal/rename-editor-viewportRémi Verschelde
Rename EditorInterface get_editor_viewport to get_editor_main_control
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-12-19Rename EditorInterface get_editor_viewport to get_editor_main_controlMarcel Admiraal
2020-12-16Make tool menu plugins use Callables for callbackkobewi
2020-11-10Register methods for drawing 3D editor overlaysTomasz Chabora
2020-10-18Refactor MethodBind to use variadic templatesreduz
Removed make_binders and the old style generated binders.
2020-09-23Added inspector_only option to inspect_object in EditorInterface.andriyDev
Updated docs to reflect change to inspect_object.
2020-08-26Added debugger plugin supportsimpu
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-07-06Expose methods to play scene from plugin codeYuri Sizov
2020-07-02Add translation parser plugin supportSkyJJ
2020-06-19Remove ToolButton in favor of ButtonHugo Locurcio
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-03Add a getter and property for the editor distraction-free modeHugo Locurcio
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
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-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
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-14Port member initialization from constructor to declaration (C++11)Rémi Verschelde
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-04-02Replace NULL with nullptrlupoDharkael
2020-03-27Renaming of servers for coherency.Juan Linietsky
VisualServer -> RenderingServer PhysicsServer -> PhysicsServer3D Physics2DServer -> PhysicsServer2D NavigationServer -> NavigationServer3D Navigation2DServer -> NavigationServer2D Also renamed corresponding files.
2020-03-27Rename more 2D and 3D nodes to follow conventionRémi Verschelde
Rename editor plugins to match the new node names.
2020-03-27Renamed 2D and 3D nodes to make their types explicitJuan Linietsky
Fixes #30736.
2020-03-18Expose FileSystemDock to the scripting API and fixed signalsIgnacio Etcheverry
Fixed FileSystemDock's `file_removed` and `folder_removed` signals not being emitted because the emitted was using the wrong signal name.
2020-03-17Style: Set clang-format Standard to Cpp11Rémi Verschelde
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-04Document EditorPlugin get_plugin_icon and get_plugin_nameAaron Franke
The return value's type hint is now accurate.
2020-02-18PoolVector is gone, replaced by VectorJuan Linietsky
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are sugar for `Vector<Type>`.
2020-02-11Base 3D engine done, still untested, though.Juan Linietsky
2020-02-11Texture refactorJuan Linietsky
-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-01-01Update copyright statements to 2020Rémi Verschelde
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.
2019-12-24Cleans up headers included in editor_node.hHaoyu Qiu
2019-09-03Merge pull request #31847 from aole/editor-expose-current-pathRémi Verschelde
Expose current path function to EditorPlugin
2019-09-01Script callback for enabling/disabling EditorPluginBhupendra Aole
Parameter p_config_changes should be passed as true to enable callback to user scripts for enabling or disabling of the EditorPlugin. Fixes #30654
2019-09-01Expose current path to EditorPluginBhupendra Aole
get_selected_path returns only the resource directory. get_current_path fulfils the need to get the full path. This does not break backward compatibility and the function (get_current_path) is already available in FileSystemDock just like get_selected_path. Fixes 30652.
2019-08-21Support for file not found in ConfigFile::Load and handle a few specific casesPouleyKetchoupp
EditorSettings::set_project_metadata: creates project_metadata.cfg if it doesn't exist EditorPlugin::get_config: removed (not used) Fixes #31444
2019-08-07Merge pull request #31077 from qarmin/coverity_bugsRémi Verschelde
Change some code proposed by Coverity and Cppcheck
2019-08-07Add some code changes/fixes proposed by Coverity and Clang Tidyqarmin
2019-08-06Let EditorPlugins set editor/distraction-free modeWill Nations
2019-07-05Script API methods must return Ref<T> instead of Reference*Ignacio Etcheverry
ptrcall assumes methods that return a Reference type do so with Ref<T>. Returning Reference* from a method exposed to the scripting API completely breaks ptrcalls to this method (it can be quite hard to debug!).
2019-07-01Remove unnecessary code and add some error explanationsqarmin
2019-06-26Some code changed with Clang-Tidyqarmin
2019-06-03Merge pull request #25522 from aqnuep/MeshLibrary_improvementsRémi Verschelde
MeshLibrary export improvements
2019-05-28Be able to add to the editor setting tabs.K. S. Ernest (iFIre) Lee
2019-03-12Add EditorInspector getter. Update Sub-Inspectors.Will Nations
2019-02-03MeshLibrary export improvementsDaniel Rakos
- From now materials assigned to the MeshInstance (not the Mesh) get exported into the MeshLibrary when such materials exist. This enables workflows where the MeshLibrary is exported from an imported scene (e.g. GLTF) where the materials assigned to the Mesh (not the MeshInstance) get overwritten on re-import, thus can't use editor set materials in the exported MeshLibrary unless they are assigned to the MeshInstance whose materials get saved with the inherited scene thus persist across re-imports. - When appending to an existing MeshLibrary only generate previews for newly added or modified meshes. - During preview generation transform camera and lights instead of the mesh and use the source MeshInstance's transform for the mesh to avoid weird previews being generated for meshes with a position dependent material (e.g. when using triplanar mapping). - Adjust the camera angle and light directions used in mesh preview generation for better results.
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-12-30Merge pull request #24506 from JFonS/expose_gizmosRémi Verschelde
Expose the new gizmo plugin system to scripting