Godot Contributions CUSL XIII
Alejandro Sirgo RicaIntroduction: these contributions were made in a big feature freeze in the engine because of the 3.1 release. There are a lot of PR not merged because of that.
godotengine:
godotengine is the main repository of the engine. It contains the core components, editor and docs.
list of PRs:
- Revert "Set DRI_PRIME=1 by default on X11 if not already set":
DRI_PRIME is a variable that controls usage of dGPU or iGPU in GNU/Linux. With that variable enabled the program of that session will be launched with dGPU.
In some systems that can be problematic because the libre driver for Nvidia GPUs has a very bad performance due to Nvidia making the process of reverse engineer very hard for the devs. I use the libre Nvidia driver and compared to the excellent Intel iGPU driver the performance was almost a half forcing the dedicated GPU. I decided to revert the PR.
https://github.com/godotengine/godot/pull/24217
- Don't enable DRI_PRIME if nouveau is loaded:
After the comments of the main contributor of the x11 backend in Godot, the best solution for the problem mentioned before was to detect in runtime which driver was in use so DRI_PRIME is not set if Nouveau is detected. The mechanism is used for the detection is based on the code of Bumblebee.
https://github.com/godotengine/godot/pull/24477
- Add --init cli argument to create new projects:
This PR might be redone. Waiting for 26213 to be merged.
https://github.com/godotengine/godot/pull/25925
- Add CSV export to profiling data:
The profiler needs some improvements and this is a first step for that. Exporting profiling data to CSV is a very common practice as it can be plotted of analyzed with software. I have a few changes in progress to improve the profiler in more areas.
https://github.com/godotengine/godot/pull/25995
- Add class tree selection to script inheritance selection
Helpful usability improvement so we don't need to hardcode the name of the classes when we define the parent class of a script.
https://github.com/godotengine/godot/pull/26022
- Fix wrong bounds check in String::right
https://github.com/godotengine/godot/pull/26095
- Add command parser:
Godot lacks a good command line validator. I've implemented a command parser which supports command suggestion, input validation and formatted help message based on the registered commands. When this is merged I'll work on another PR so engine modules can register their own commands.
https://github.com/godotengine/godot/pull/26213
- Add missing methods to Rect2i
Rect2i is an internal class in the engine. The exposed class is Rect2 which used floating point variables to store the data. They expose similar API butRect2i isn't up to date with its counterpart.
https://github.com/godotengine/godot/pull/27294
- Allow default audio bus layout modification
The actual default bus layout has to be called default_bus_layout.tres and it needs to be in the root of the project. This PR allows the modification of the default audio bus layout.
https://github.com/godotengine/godot/pull/27644
- Prevent using multiple class_name in a class
Simple fix preventing the overwrite of class names.
https://github.com/godotengine/godot/pull/27987
- GDScript: add variable shadowing warning
With this change the editor shows a warning when you shadow the name of a higher scope variable.
https://github.com/godotengine/godot/pull/28053
- Validate scripts when they are loaded in the text editor
Before any validation, the modification of the script was needed to get warnings and errors. This change starts a validation just right after loading the script in the editor.
https://github.com/godotengine/godot/pull/28073
- Fix code completion not working with class_name
class_name invalidated the autocompletion because the parser found the path of the script was empty. This should only happen with built-in scripts, which are the script inside .tscn files.
https://github.com/godotengine/godot/pull/28099
GDNative-demos:
GDNative-demos is the repository with the GDNative code examples. GDNative is the method used by the engine to expose APIs through a C interface so the engine can be extended with modules and new languages.
list of PRs:
- Update C++ demos to latest bindings
The native bindings were updated to version 1.1, a breaking compatibility version needed to fix some usability issues.
With the update the native demos didn't compile so I did a PR updating the code.
https://github.com/GodotNativeTools/GDNative-demos/pull/27
godot-demo-projects:
godot-demo-projects contains the main code examples coded in GDScript (the main language of the engine).
list of PRs:
- Add procedural mesh 3D demo