Commit Graph

618 Commits

Author SHA1 Message Date
3f34832dba Add a project setting to disable the boot splash image
This allows disabling the boot splash image while keeping the
background color.
2021-11-23 02:20:25 +01:00
7dc97d6558 Ignore override.cfg when in editor 2021-11-22 16:10:31 +01:00
88c4380737 Modules: Make sure to include modules_enabled.gen.h where needed 2021-11-12 13:42:58 +01:00
a9a45ee7ee Move Mono unhandled exception setting to be located within a subsection
Settings that aren't within a subsection are difficult to reach when
other settings do have a subsection.

This also adds documentation for the project setting.
2021-11-10 17:31:54 +01:00
f61ee47a2e Display 2 decimals instead of 1 in editor frametime labels
When comparing different graphics settings or optimizations,
this makes precise measurements and frametime comparisons easier.
2021-11-09 17:17:55 +01:00
071829acc5 Enable mono editor build in CI 2021-11-09 11:02:04 +01:00
665d29c16d Fix new projects always being created with OpenGL
Only Vulkan is fully implemented for now, so OpenGL isn't available
in the project manager yet.

This also makes the rendering driver checks use lowercase names
everywhere for consistency.
2021-11-01 22:04:36 +01:00
0b6b8427c8 [macOS] Add create_instance function to spawn editor copies.
[macOS] Modify `create_project` function to detect and run app bundles using NSWorkspace to ensure app window is registered and activated correctly.
2021-11-01 11:48:23 +02:00
8a10bb7d0d Use OpenGL 3.3 core profile instead of compatibility profile
- Rename OpenGL to GLES3 in the source code per community feedback.
  - The renderer is still exposed as "OpenGL 3" to the user.
- Hide renderer selection dropdown until OpenGL support is more mature.
  - The renderer can still be changed in the Project Settings or using
    the `--rendering-driver opengl` command line argument.
- Remove commented out exporter code.
- Remove some OpenGL/DisplayServer-related debugging prints.
2021-10-31 15:56:45 +01:00
ce97ddbcb1 Rename GLES2 driver to OpenGL to prepare for the upgrade to GLES3
- Use lowercase driver names for the `--rendering-driver`
  command line argument.
2021-10-30 02:05:49 +02:00
e3491a3744 Add GLES2 2D renderer + Linux display manager
First implementation with Linux display manager.

- Add single-threaded mode for EditorResourcePreview (needed for OpenGL).

Co-authored-by: clayjohn <claynjohn@gmail.com>
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2021-10-30 02:05:48 +02:00
3a6be64c12 clang-format: Various fixes to comments alignment from clang-format 13
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28 15:43:36 +02:00
3b11e33a09 clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 15:19:35 +02:00
75ae3164a4 Fix exit code for --script --check-only, fixes #54087
this commit makes godot executable to return zero exit code
once a valid script is passed via --script during --check-only
2021-10-21 20:44:24 +02:00
f4c3192d0a Main: Fixup --dump-extension-api after #54017
That removal was correct, but triggered a bug in our messy-as-heck main.cpp
detection logic for editor/project manager/project/command line tool...
Fixing this is for another day.
2021-10-21 09:43:39 +02:00
af976e4834 Merge pull request #50680 from Calinou/project-default-single-window-mode 2021-10-20 19:09:13 +02:00
da98357e6e doctool: Fix differences between headless and Vulkan rendering backends
Fixes #53913.
2021-10-20 17:48:50 +02:00
73f6351e28 Main: Add documentation for --dump-extension-api 2021-10-20 12:05:05 +02:00
5d1ea92daf Rework XR positional trackers 2021-10-17 12:12:20 +11:00
7e51e4cb84 Fix some LGTM errors of "Multiplication result converted to larger type" 2021-10-12 00:17:27 -05:00
0c0b5c84b0 Implement TextServer GDExtension interface, remove TextServer GDNative interface. 2021-10-01 15:13:29 +03:00
3a19400889 Merge pull request #48685 from bruvzg/bundle_icon_4 2021-09-30 14:55:04 +02:00
0623d3676b Improve unregistering XR interfaces so we don't get crashes in GDExtensions by destroying the XRServer too early 2021-09-28 12:25:15 +10:00
87fb9297e3 Display an alert when attempting to run a project with no main scene
This gives visual feedback when not starting Godot from a terminal.
This could lead to confusion when placing a Godot binary within a
project folder that has no main scene defined.
2021-09-20 14:38:14 +02:00
1c08719d09 Add remaning code edit unit tests 2021-09-20 09:42:39 +01:00
2b292a1a2a --single-window is passed through project manager.
This means you can start godot with --single-window
2021-09-15 10:20:50 +02:00
0e7beb183a Merge pull request #52562 from BastiaanOlij/gd_extensions_register_drivers
Add driver types to GD extension initialisation levels
2021-09-15 08:46:43 +02:00
3cc01b2824 Merge pull request #52226 from Faless/debugger/4.x_start_options 2021-09-14 16:20:02 +02:00
70ba366743 Merge pull request #50375 from Paulb23/code_edit_unit_tests 2021-09-13 21:51:20 +02:00
f9849a2717 Add driver types to GD extension initialisation levels 2021-09-13 18:50:00 +10:00
427d3d7207 Allow unit testing SceneTree Ojects 2021-09-01 16:46:04 +01:00
2daaf0fdc3 Make platform feature tag names lowercase
Feature tag names are still case-sensitive, but this makes built-in
feature tags more consistent.

- `Windows` -> `windows`
- `OSX` -> `osx`
- `LinuxBSD` -> `linuxbsd`
- `Android` -> `android`
- `iOS` -> `ios`
- `HTML5` -> `html5`
- `JavaScript` -> `javascript`
- `UWP` -> `uwp`
2021-08-31 20:34:44 +02:00
d11c1afc04 Rename String::is_rel_path to String::is_relative_path 2021-08-29 20:41:29 -04:00
4123612eeb [Editor] Add "--debug-server <uri>" option.
Allow starting the editor debugger server for the given protocol (and
optionally bound to the given ip/port combination:

godot -e --debug-server tcp://*:8080
2021-08-29 18:03:20 +02:00
31f790299c Use OrderedHashMap for autoloads to preserve order 2021-08-26 21:55:26 -07:00
88db541705 Merge pull request #51947 from AnilBK/redundant-assignments
[cppcheck] Remove some redundant assignments.
2021-08-23 13:23:45 +00:00
337574d7f2 Merge pull request #37260 from Calinou/define-minimum-window-size
Define a default minimum window size to workaround rendering issues
2021-08-22 09:08:33 +02:00
9396d408c8 Merge pull request #36872 from Calinou/default-stretch-aspect-expand
Use the `keep` stretch aspect by default
2021-08-22 08:30:21 +02:00
f02a040d48 Define a default minimum window size to workaround rendering issues
The minimum window size can still be set to `Vector2(0, 0)` in a script
if needed.

This closes #37242.
2021-08-22 08:19:49 +02:00
c86db8b710 Remove redundant assignments.
Use used_in_transfer instead of used_in_compute twice.
2021-08-21 19:20:07 +05:45
abdfbef075 Add project setting for agile input event flushing
If enabled, key/touch/joystick events will be flushed just before every idle and physics frame.

Enabling this can greatly improve the responsiveness to input, specially in devices that need to run multiple physics frames per each idle frame, because of not being powerful enough to run at the target frame rate.

This will only work for platforms using input buffering (regardless event accumulation). Currenly, only Android does so, but could be implemented for iOS in an upcoming PR.
2021-08-13 11:45:50 +02:00
dc187324be Add input buffering framework
Input buffering is implicitly used by event accumulation, but this commit makes it more generic so it can be enabled for other uses.

For desktop OSs it's currently not feasible given main and UI threads are the same).
2021-08-13 11:19:19 +02:00
62047e4e48 Merge pull request #51486 from reduz/fixes-to-mobile-renderer
Fixes and optimizations to mobile renderer
2021-08-11 15:19:11 +02:00
ca117910da Fixes and optimizations to mobile renderer
* Only apply final actions to attachments used in the last pass.
* Fixes to draw list final action (was using continue instead of read/drop).
* Profiling regions inside draw lists now properly throw errors.
* Ability to enable gpu profile printing from project settings. (used to debug).
2021-08-10 23:17:28 -03:00
937c1a716c Rename iterations_per_second to physics_ticks_per_second
This makes it clearer that this property is only about physics FPS,
not rendering FPS.

The `physics_fps` project setting was also renamed to
`physics_ticks_per_second` for consistency.
2021-08-11 02:37:02 +02:00
09386ba9fd [Headless] Add --headless switch (no rendering, no audio).
Also remove now unused "--no-window" option, and relative OS getter and
setter.
2021-08-03 17:45:50 +02:00
9c34db6cb4 Print a warning when the engine is started as root/superuser
This is a security risk (especially when hosting a game server)
and can make audio non-functional on Linux.
2021-07-31 16:23:26 +02:00
2b1e6e303e Merge pull request #50786 from reduz/implement-resource-uids
Implement Resource UIDs
2021-07-24 17:18:12 +02:00
32b43cfeb3 Implement Resource UIDs
* Most resource types now have unique identifiers.
* Applies to text, binary and imported resources.
* File formats reference both by text and UID (when available). UID always has priority.
* Resource UIDs are 64 bits for better compatibility with the engine.
* Can be represented and used textually, example `uuid://dapwmgsmnl28u`.
* A special binary cache file is used and exported, containing the mappings.

Example of how it looks:

```GDScript
[gd_scene load_steps=2 format=3 uid="uid://dw86wq31afig2"]

[ext_resource type="PackedScene" uid="uid://bt36ojelx8q6c" path="res://subscene.scn" id="1_t56hs"]
```

GDScript, shaders and other special resource files can't currently provide UIDs, but this should be doable with special keywords on the files.
This will be reserved for future PRs.
2021-07-24 09:16:52 -03:00
4e6efd1b07 Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00