summaryrefslogtreecommitdiff
path: root/modules/mono/editor
AgeCommit message (Collapse)Author
2021-07-18Optimize StringName usagereduz
* Added a new macro SNAME() that constructs and caches a local stringname. * Subsequent usages use the cached version. * Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time. * Replaced all theme usages by this new macro. * Replace all signal emission usages by this new macro. * Replace all call_deferred usages by this new macro. This is part of ongoing work to optimize GUI and the editor.
2021-07-15Mono: Remove info dialog discouraging use in productionRémi Verschelde
While there are still various bugs to solve and features to implement, the C# support as of Godot 3.4 is fairly mature and already used by a number of users in production. Now that we default to dotnet CLI as build tool, it also seems to be more reliable than MSBuild. The documentation can (and does for the most part) point out some caveats that users should be aware of, but this info dialog has outlived its intended purpose.
2021-06-23Fixing mono build after instance() -> instanciate() name changeGrzegorz Puławski
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-18Fix a typo in C# bindings generator for default value typesAaron Franke
2021-06-13Merge pull request #34668 from aaronfranke/to-stringRémi Verschelde
[Core] Reformat structure string operators
2021-06-13Improve & fix Mono buildPedro J. Estébanez
- Fix C++ compile errors about pending variable renames after the `Reference` to `RefCount` change. - Fix C# compile errors due to the recent rename of `EnablePlugin()` and `Build()`, which are now underscore-prefixed in bindings. - Additional rename: `godot_icall_Reference_Dtor` to `godot_icall_RefCounted_Dtor`.
2021-06-11Rename Reference to RefCountedPedro J. Estébanez
2021-06-11Reformat structure string operatorsAaron Franke
The order of numbers is not changed except for Transform2D. All logic is done inside of their structures (and not in Variant). For the number of decimals printed, they now use String::num_real which works best with real_t, except for Color which is fixed at 4 decimals (this is a reliable number of float digits when converting from 16-bpc so it seems like a good choice)
2021-06-11Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde
File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.
2021-06-04Rename Quat to QuaternionMarcel Admiraal
2021-06-03Rename files and the exposed name for Transform3DAaron Franke
2021-06-03Rename Variant TRANSFORM to TRANSFORM3DAaron Franke
Also _transform to _transform3d
2021-06-03Rename Transform to Transform3D in coreAaron Franke
2021-04-29Replace remaining uses of `NULL` with `nullptr`Rémi Verschelde
Follow-up to #38736 (these uses were likely added after this PR was merged).
2021-03-13Merge pull request #46954 from neikeq/reggr-46307Rémi Verschelde
C#: Fix StringName leak warnings after generating bindings
2021-03-13C#: Fix StringName leak warnings after generating bindingsIgnacio Etcheverry
`Main::cleanup()` prints warnings if it finds `StringName`s still alive. We need the `BindingsGenerator` to be destructed before calling cleanup.
2021-03-13C#: Fix ScriptPathAttribute generator with none or nested namespacesIgnacio Etcheverry
The following two bugs were fixed: - For classes without namespace we were still generating `namespace {` without a namespace identifier, causing a syntax error. - For classes with nested namespaces we were generating only the innermost part of the namespace was being generated, e.g.: for `Foo.Bar` we were generating `namespace Bar {` instead of `namespace Foo.Bar {`. This wasn't causing any build error, but because of the wrong namespace Godot wasn't able to find the class associated with the script.
2021-03-07Merge pull request #46713 from neikeq/csharp-source-generators-initRémi Verschelde
Add C# source generator for ScriptPathAttribute
2021-03-06Add C# source generator for a new ScriptPath attributeIgnacio Etcheverry
This source generator adds a newly introduced attribute, `ScriptPath` to all classes that: - Are top-level classes (not inner/nested). - Have the `partial` modifier. - Inherit `Godot.Object`. - The class name matches the file name. A build error is thrown if the generator finds a class that meets these conditions but is not declared `partial`, unless the class is annotated with the `DisableGodotGenerators` attribute. We also generate an `AssemblyHasScripts` assembly attribute which Godot uses to get all the script classes in the assembly, eliminating the need for Godot to search them. We can also avoid searching in assemblies that don't have this attribute. This will be good for performance in the future once we support multiple assemblies with Godot script classes. This is an example of what the generated code looks like: ``` using Godot; namespace Foo { [ScriptPathAttribute("res://Player.cs")] // Multiple partial declarations are allowed [ScriptPathAttribute("res://Foo/Player.cs")] partial class Player {} } [assembly:AssemblyHasScripts(new System.Type[] { typeof(Foo.Player) })] ``` The new attributes replace script metadata which we were generating by determining the namespace of script classes with a very simple parser. This fixes several issues with the old approach related to parser errors and conditional compilation. It also makes the task part of the MSBuild project build, rather than a separate step executed by the Godot editor.
2021-02-25Fix C# bindings generator for default value typesAaron Franke
2021-02-22Make glue generation shutdown more gracefulPedro J. Estébanez
2021-02-20Merge pull request #45158 from aaronfranke/cs-packedarrayRémi Verschelde
Add C# array features from core PackedArrays
2021-02-18Merge pull request #45032 from neikeq/classdb-tests-for-44856Rémi Verschelde
Add ClassDB tests to look for core API deps on editor API
2021-02-16Add C# array features from core PackedArraysAaron Franke
2021-02-04[Mono] Use the same search logic for both `MSBuild` and `dotnet`, add custom ↵bruvzg
search paths on macOS.
2021-01-28Fix off by one error navigating to line number in RiderIvan Shakhov
Fixes https://github.com/JetBrains/godot-support/issues/61
2021-01-19Cleanup: Remove executable bit from files which don't need itRémi Verschelde
Drop unused xpmfix.sh script.
2021-01-13Merge pull request #45136 from akien-mga/clang-format-11Rémi Verschelde
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-13Update Mono module to use new execute method.Marcel Admiraal
2021-01-12CI: Update to clang-format 11 and apply ternary operator changesRémi Verschelde
2021-01-09Add ClassDB tests to look for core API deps on editor APIIgnacio Etcheverry
The ClassDB tests will detect when the core API has dependencies on the editor API, which is not allowed. This should prevent or warn early about issues like #44856
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-28Rename empty() to is_empty()Marcel Admiraal
2020-12-17Merge pull request #44105 from neikeq/mono-wasm-m2n-hookRémi Verschelde
Mono: Make Godot provide its own WASM m2n trampolines
2020-12-14Mono: Make Godot provide its own WASM m2n trampolinesIgnacio Etcheverry
This depends on a custom Mono patch from this commit: godotengine/godot-mono-builds@0e312939bd0dc4b807cc15dbe76a7b65456ab928
2020-12-14Mono: Add extra WASM framework assemblies on game exportIgnacio Etcheverry
This is needed with newer Mono versions, at least with Mono 6.12+ Depends on the following commit from our build scripts: godotengine/godot-mono-builds@9d75cff174fa3599a9d90f9bce53f0a86154db1e
2020-12-08Merge pull request #43742 from qarmin/editor_modules_default_valuesRémi Verschelde
Initialize class/struct variables with default values in platform/ and editor/
2020-12-05Merge pull request #44107 from neikeq/fix-slow-build-log-updateRémi Verschelde
C#: Fix very slow build log update in the editor
2020-12-05C#: Fix very slow build log update in the editorIgnacio Etcheverry
2020-12-02Initialize class/struct variables with default values in platform/ and editor/Rafał Mikrut
2020-12-02Refactor DocData into core and editor (DocTools) partsThakee Nathees
2020-11-26[Complex Text Layouts] Refactor Font class, default themes and controls to ↵bruvzg
use Text Server interface. Implement interface mirroring. Add TextLine and TextParagraph classes. Handle UTF-16 input on macOS and Windows.
2020-11-16Remove empty lines around braces with the formatting scriptAaron Franke
2020-11-09Variant: Rename Type::_RID to Type::RIDRémi Verschelde
The underscore prefix was used to avoid the conflict between the `RID` class name and the matching enum value in `Variant::Type`. This can be fixed differently by prefixing uses of the `RID` class in `Variant` with the scope resolution operator, as done already for `AABB`.
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-10-27Merge pull request #43029 from neikeq/offline-nuget-fallbackRémi Verschelde
C#: Make editor create NuGet fallback folder for Godot packages
2020-10-26C#: Fix custom event signals crash on hot-reloadIgnacio Etcheverry
Cleanup and re-initialization of event signals before and after hot-reload should be working correctly now.
2020-10-23C#: Make editor create NuGet fallback folder for Godot packagesIgnacio Etcheverry
Main benefits: - Projects can be built offline. Previously you needed internet access the first time building to download the packages. - Changes to packages like Godot.NET.Sdk can be easily tested before publishing. This was already possible but required too many manual steps. - First time builds are a bit faster, as the Sdk package doesn't need to be downloaded. In practice, the package is very small so it makes little difference. Bumped Godot.NET.Sdk to 4.0.0-dev3 in order to enable the recent changes regarding '.mono/' -> '.godot/mono/'.
2020-10-23C#: Re-work solution build output panelIgnacio Etcheverry
- Removed item list that displayed multiple build configurations launched. Now we only display the last build that was launched. - Display build output next to the issues list. Its visibility can be toggled off/on. This build output is obtained from the MSBuild process rather than the MSBuild logger. As such it displays some MSBuild fatal errors that previously couldn't be displayed. - Added a context menu to the issues list with the option to copy the issue text. - Replaced the 'Build Project' button in the panel with a popup menu with the options: - Build Solution - Rebuild Solution - Clean Solution - The bottom panel button was renamed from 'Mono' to 'MSBuild' and now display an error/warning icon if the last build had issues.