Age | Commit message (Collapse) | Author |
|
|
|
|
|
Implements exit codes into the engine so tests can return their statuses.
Ideally we don't do this, and we use FIXUP logic to 'begin' and 'end' the engine execution for tests specifically.
Since realistically we're initialising the engine here we don't want to do that, since String should not require an engine startup to test a single header.
This lowers the complexity of running the unit tests and even for
physics should be possible to implement such a fix.
|
|
Sometimes to fix something you have to break it first.
This get GDScript mostly working with the new tokenizer and parser but
a lot of things isn't working yet. It compiles and it's usable, and that
should be enough for now.
Don't worry: other huge commits will come after this.
|
|
Due to `user://` returning the current working directory when no
project is open, this caused logs to be written to `$HOME`
most of the time.
This closes #40305.
|
|
Display error popup instead of crashing if Vulkan init failed.
|
|
|
|
uninitialized device and instance.
|
|
|
|
Enable file logging by default on desktops to help with troubleshooting
|
|
|
|
- Use the `.log` file extension (recognized on Windows out of the box)
to better hint that generated files are logs. Some editors provide
dedicated syntax highlighting for those files.
- Use an underscore to separate the basename from the date and
the date from the time in log filenames. This makes the filename
easier to read.
- Keep only 5 log files by default to decrease disk usage in case
messages are spammed.
|
|
So places that need to look into it can use the list instead of parsing
ProjectSettings details (like checking "*" in path for testing if it's
singleton).
|
|
|
|
Remove String::find_last (same as rfind)
|
|
|
|
|
|
Make all String integer conversion methods be 64-bit
|
|
Fix doctool misleading error message
|
|
Will allow specific platforms to override it and avoid blocking on the
main/GUI thread.
|
|
Monitor
Custom monitors can be added/removed/checked using `Performance.add_custom_monitor`/`Performance.remove_custom_monitor`/`Performance.has_custom_monitor`
The value can be viewed in the `Monitor` tab of Debugger.
Text before `/` is used to categorize the custom monitor.
`EditorPerformanceProfiler` class is created to separate logic from `ScriptEditorDebugger`
User can click on the graph of monitors to read the value at that point.
Graph includes intermediate base lines.
|
|
|
|
Improve the low processor mode sleep precision
|
|
Partial revert of #15702 which triggered the issue.
Fixes #39786.
|
|
Otherwise generating docs with non-Mono builds removes them,
which is not so convenient for the documentation work.
|
|
Expose disable_render_loop property to GDScript
|
|
|
|
Since projects started from the editor or exported in debug mode
run slower than those exported in release mode, this should be
clearly presented to the user.
This partially addresses #20219.
|
|
Added more euler rotation orders support.
|
|
The Low Processor Usage Mode Sleep Usec setting is now used as a
FPS limiter rather than a constant sleep duration.
This will increase CPU/GPU usage slightly due to the higher
effective FPS, but the increase in overall smoothness is worth it.
If both Force Fps and Low Processor Usage Mode settings are enabled
in the project settings, only the setting that causes the highest
sleep duration will be retained.
This closes #11030.
|
|
When it was in `setup2()`, it would arrive too late for the optional file
logging feature.
Fixes #32488.
|
|
- Fixed floating point issue on the old one.
- Fixed the equation on the get_euler_yxz function.
- Added unit tests.
This work has been kindly sponsored by IMVU.
|
|
|
|
Split `Geometry` singleton into `Geometry2D` and `Geometry3D`
|
|
Extra `_2d` suffixes are removed from 2D methods accoringly.
|
|
Dynamic infinite 3D grid
|
|
This patch adds ability to include external, user-defined C++ modules
to be compiled as part of Godot via `custom_modules` build option
which can be passed to `scons`.
```
scons platform=x11 tools=yes custom_modules="../project/modules"
```
Features:
- detects all available modules under `custom_modules` directory the
same way as it does for built-in modules (not recursive);
- works with both relative and absolute paths on the filesystem;
- multiple search paths can be specified as a comma-separated list.
Module custom documentation and editor icons collection and generation
process is adapted to work with absolute paths needed by such modules.
Also fixed doctool bug mixing absolute and relative paths respectively.
Implementation details:
- `env.module_list` is a dictionary now, which holds both module name as
key and either a relative or absolute path to a module as a value.
- `methods.detect_modules` is run twice: once for built-in modules, and
second for external modules, all combined later.
- `methods.detect_modules` was not doing what it says on the tin. It is
split into `detect_modules` which collects a list of available modules
and `write_modules` which generates `register_types` sources for each.
- whether a module is built-in or external is distinguished by relative
or absolute paths respectively. `custom_modules` scons converter
ensures that the path is absolute even if relative path is supplied,
including expanding user paths and symbolic links.
- treats the parent directory as if it was Godot's base directory, so
that there's no need to change include paths in cases where custom
modules are included as dependencies in other modules.
|
|
OAHashMap crash fix and copy feature.
|
|
(would cause division by 0)
- Added possibility to copy an OAHashMap
- Added unit tests
This code is generously donated by IMVU.
|
|
Well, infinite for all intents and purposes.
|
|
Fix editor ignoring 'single_window_mode' with no main scene
|
|
Previously the editor would ignore the 'single_window_mode' editor setting if
the edited project didn't have a main scene configured in the project settings.
|
|
Also changed the name of the test macros to be clearer.
|
|
[Windows] Add tablet driver selection.
|
|
Allow `.res` and `.tres` extensions in the scene CLI positional argument
|
|
|
|
Added tests for ClassDB
|
|
This changes the way the lifespan of items is managed to be consistent.
Bonus: Simplify cases of destroy-then-emplace.
|
|
|
|
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
|