Commit Graph

123 Commits

Author SHA1 Message Date
70f6d42c92 Remove Disable Touch debug project setting
This project setting was only implemented and iOS and likely served
no purpose outside of debugging during development of engine features.

It was also located in a confusing location in the project settings
editor, as it was located below a root category (which appears in bold
and is normally not seen as clickable by users).
2022-12-17 18:47:29 +01:00
f21f75eb6f Project Manager: Fix hacky code for project rename
Instantiating a new ProjectSettings is *not* the way to go.
ConfigFile works just fine to read/change a single value.

Fixes memory leaks as the instantiated ProjectSettings was never freed.
Forbid doing this to prevent such problems.

Fixes #25661.
2022-11-29 15:38:22 +01:00
d0025a1f02 Merge pull request #64077 from Calinou/tweak-audiostreamplayer2d3d-default-panning
Decrease default AudioStreamPlayer2D/3D panning strength
2022-11-15 22:29:23 +01:00
94e9860b82 Merge pull request #65836 from Calinou/add-max-physics-steps-per-frame-setting
Implement adjusting the maximum number of physics steps per rendered frame
2022-11-15 16:24:56 +01:00
3b14f0334c Remove redundant Variant-types initializations 2022-11-14 19:35:19 +01:00
d9f066d5fa Remove duplicate project settings definitions 2022-11-08 01:29:39 +01:00
5947f22be9 Merge pull request #67578 from KoBeWi/GEDITOR
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
56fa8f1d58 Fix localize_path with custom protocol identifiers 2022-10-20 14:12:25 +02:00
e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02:00
66f7c48e39 Implement adjusting the maximum number of physics steps per rendered frame
When using high physics FPS (which is a requirement to minimize input
lag and improve precision in simulation racing games), a higher value
prevents the game from slowing down at low rendering FPS.

This can be done via an Engine property for run-time changes,
or a project setting for initial changes.
2022-10-09 23:00:09 +02:00
0103af1ddd Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
1c6c72caf1 Rename Engine.target_fps and associated project setting to max_fps
This makes the setting easier to find, as research has found there are
numerous use cases to limiting FPS. This also improves documentation
related to the Engine property and project setting.

The project setting also works in projects exported in release mode,
so its location in the `debug/` section was misleading.
2022-10-03 23:54:36 +02:00
dc4a634c0d Project supported features: Ignore old 'Vulkan Clustered/Forward' names
This eases transition from beta 1 to beta 2 so that users don't get a warning
about a missing feature. The names were just changed.

The old feature names are removed from project.godot when opening such a
project.
2022-09-28 23:27:27 +02:00
0b06f8b0bd Merge pull request #65816 from bruvzg/proj_settings_missing_flags
Add missing initial window flags and window mode to the project settings.
2022-09-21 18:56:31 +02:00
7da532275b Merge pull request #65541 from clayjohn/renderer-setting
Split rendering driver project setting into renderer_name and rendering_driver
2022-09-20 09:43:59 +02:00
4a1c7de57c Split rendering driver project setting into renderer_name and rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer). 2022-09-19 10:26:10 -07:00
4ebf7d14ac Merge pull request #66079 from Zylann/project_settings_restart
Expose ProjectSettings.set_restart_if_changed(name, restart)
2022-09-19 15:33:11 +02:00
2a8aeddc93 Expose ProjectSettings.set_restart_if_changed(name, restart) 2022-09-19 13:57:07 +01:00
d104a4cdbd Add missing initial window flags and window mode to the project settings. 2022-09-19 12:30:10 +03:00
9d6af9323a Fix inconsistent scene file name casing by moving existing Name_Casing code to separate function in editor_node, and adding a call from both editor_node and scene_tree_dock. 2022-09-18 11:17:22 +10:00
6baf530bcb Fix arm32 detection in Engine.
The `__ARM_ARCH_7A__` and `__ARM_ARCH_7S__` are not enough, since they
do not cover e.g. `__ARM_ARCH_8A__` in 32 bit mode, so instead of trying
to cover any possible ARM version that can work in 32 bit mode, we
can replace it with the `__arm__` macro which is defined for arm32 only
(arm64 uses `__aarch64__`).
2022-09-03 13:41:59 +02:00
3f5d5a6370 Merge pull request #64180 from aaronfranke/project-features-tools-only 2022-09-01 22:58:24 +02:00
10a56981dc Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
0a87bd7b54 Only compile project features logic in editor builds 2022-08-27 21:02:35 -05:00
8dab4a2aa3 [Windows] Improve build environment detection, add support for Windows on ARM. 2022-08-27 16:10:53 +03:00
e08a2be436 Determine ProjectSettings' resource path early 2022-08-26 15:01:52 +02:00
8be27dc59e Replace Array return types with TypedArray 2022-08-22 22:42:36 +02:00
1fbf7b1ba5 Merge pull request #64610 from reduz/startup-benchmark-support 2022-08-22 19:36:03 +02:00
7895a66cf2 Merge pull request #64334 from YuriSizov/core-bind-property-revert-methods
Make `property_*_revert` methods multilevel and expose them for scripting
2022-08-19 20:41:41 +03:00
a3936adb29 Add Startup benchmarking support
This adds support for benchmarking engine startup (and editor startup if used).
The goal is to use this in the benchmarking server to track improvements and changes to engine, editor, importer and scene loading startup times.
2022-08-19 14:21:43 +02:00
e559dcb8f5 Increase the default project window size for better usability
The new default window size is tuned to:

- Have a 16:9 aspect ratio,
- Have both dimensions divisible by 8 to better play along with
  video recording,
- Be displayable correctly in windowed mode on a 1366×768 display
  (tested on Windows 10 with default settings).

This breaks compatibility with projects that didn't change the
window size from the default value (or that kept one of the values
to its default).
2022-08-18 21:22:18 +02:00
980f5f32f4 Make property_*_revert methods multilevel and expose them for scripting 2022-08-18 00:03:53 +03:00
160d10dc7b Decrease default AudioStreamPlayer2D/3D panning strength
The default panning strength is now more in line with how other
engines play positional sound.
2022-08-09 18:46:52 +02:00
27a072c884 Print expected os.arch tuple for current platform in GDExtension error
This also adds `Engine.get_architecture_name()` to get the name of the
CPU architecture the Godot binary was built for.
2022-08-08 19:30:34 +02:00
c939f336d6 Only define keep_screen_on project setting once 2022-08-06 22:10:24 +02:00
33258d850c Merge pull request #61315 from lawnjelly/variant_bucket_pools
Variant memory pools
2022-08-02 15:54:18 +02:00
aaeb60eafc Add a Movie Quit On Finish property to AnimationPlayer
This quits the project when an animation is done playing in the
given AnimationPlayer, but only in Movie Maker mode.
When this happens, a message is printed with the absolute path of the
AnimationPlayer node that caused the engine to quit.

This can be used to create videos that stop at a specified time
without having to write any script.

A report is now also printed to the console when the video is done
recording (as long as the engine was exited properly).
This report is unfortunately not always visible in the editor's
Output panel, as it's printed too late.

A method was also added to get the path to the output file from the
scripting API.
2022-07-27 18:50:28 +02:00
9403173994 Allow loading override.cfg from PCK files 2022-07-25 22:34:54 -05:00
8823eae328 Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
b221eab426 Variant memory pools
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-07-04 12:01:46 +01:00
40c360b870 Merge pull request #62122 from reduz/implement-movie-writer
Implement a Movie Maker mode
2022-06-21 14:24:14 +02:00
5786516d4d Implement Running Godot as Movie Writer
* Allows running the game in "movie writer" mode.
* It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time).
* If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult.
* Implements a simple, default MJPEG writer.

This new features has two main use cases, which have high demand:
* Saving game videos in high quality and ensuring the frame rate is *completely* stable, always.
* Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this).

**Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly).

Usage:

$ godot --write-movie movie.avi [scene_file.tscn]

Missing:

* Options for configuring video writing via GLOBAL_DEF
* UI Menu for launching with this mode from the editor.
* Add to list of command line options.
* Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-06-21 11:28:47 +02:00
15837ec191 Revert "Disable VRAM compression by default for small textures in Detect 3D" 2022-06-20 15:30:19 +02:00
0daa868ab4 Merge pull request #62023 from Calinou/detect-3d-small-textures-no-vram-compress
Disable VRAM compression by default for small textures in Detect 3D
2022-06-17 21:07:04 +02:00
d384d84f45 Audio: Expose 2D/3D panning strength parameters 2022-06-17 13:08:48 +02:00
04d5626bc0 Disable VRAM compression by default for small textures in Detect 3D
This is done to prevent reducing texture quality when it doesn't save
much video memory, especially for pixel art.

The size threshold can be adjusted in the project settings.
To get the previous behavior where textures detected to be used in 3D
had their compression mode always set to VRAM, set this to the lowest value
(16).
2022-06-14 13:08:20 +02:00
83014f8901 Add GLOBAL_DEF_INTERNAL to hide specific settings 2022-06-07 14:14:03 +02:00
45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
9d9b50855c ProjectSettings: use RBMap again instead of HashMap
This fixes corruption of project.godot and failure to load global classes.
2022-05-17 14:49:58 +02:00