Commit Graph

5157 Commits

Author SHA1 Message Date
Riteo 4fd6777cf4 Linux/OpenGL: don't force vsync in the editor
I couldn't tell whether this has an actual purpose and it feels more
like a debug remnant.

We also need to be able to disable vsync in the editor for the WIP
Wayland backend (in the EGL driver) as it does manual frame throttling.
2023-09-24 04:36:58 +02:00
naelstrof b49e9c9896 Made signal handling more uniform. Fixes #82102 2023-09-22 20:06:58 -06:00
Rémi Verschelde bafcd32f15
Merge pull request #81716 from akien-mga/web-disable-raycast-embree
Web: Disable raycast module by default (no occlusion culling)
2023-09-22 22:03:55 +02:00
Aitor Guevara 6263774aec [Windows] Fix not applying NVIDIA profile to new executables
An NVIDIA profile is applied to the current executable to disable
threaded OpenGL optimizations on Windows (see #71472). But because the
application is only added to the profile upon the profile creation,
newer executables won't be added to the profile (e.g. if the profile is
created on first launch of Godot_v4.1-stable_win64.exe, when users
update the editor and launch Godot_v4.2-stable_win64.exe, the profile
will never be applied to this new executable).
This patch fixes that scenario by splitting creating the profile (if it
doesn't exist) and adding the application (if it doesn't have a profile
applied) into two separate steps.
Applications that have been manually added to a different profile aren't
overriden to avoid confusing users who know what they're doing.
2023-09-22 20:51:12 +02:00
Rémi Verschelde 603119d301
Merge pull request #82037 from bruvzg/macos_gl_min_size
[macOS] Enforce non-zero window size.
2023-09-21 14:27:42 +02:00
Rémi Verschelde cc0a02c75c
Merge pull request #82031 from bruvzg/borderless_fs
[Windows] Use clear color for non exclusive fullscreen border, fix maximize for borderless window switching to exclusive fs.
2023-09-21 14:27:39 +02:00
bruvzg 1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
Co-authored-by: Riteo <riteo@posteo.net>
2023-09-21 14:21:00 +03:00
bruvzg 901e090e56
[macOS] Enforce non-zero window size. 2023-09-21 12:37:18 +03:00
bruvzg b826cd5acd [Windows] Use clear color for non exclusive fullscreen border, fix maximize for borderless window switching to exclusive fs. 2023-09-21 11:24:40 +03:00
bruvzg f316283823
[macOS export] Fix GDExtension framework +x flag errors, allow recursive signing on non macOS platform. 2023-09-20 12:21:18 +03:00
bruvzg 6da8c7a662
[macOS] Workaround Xcode 15 linker bug. 2023-09-20 11:03:44 +03:00
Rémi Verschelde 50161808c2
Web: Fix version check for missing scalbnf LTO workaround
The check needs to happen after we set `env["CXX"]`.
Follow-up to #81340.
2023-09-18 16:32:20 +02:00
Rémi Verschelde 4b2fb36a04
Merge pull request #80644 from Distantz/master
Android Stylus pressure and tilt support.
2023-09-17 14:46:39 +02:00
Rémi Verschelde 8c40edf8c0
Web: Disable raycast module by default (no occlusion culling)
This means no CPU occlusion culling (and not compiling Embree), unless
you compile custom export templates with `module_raycast_enabled=yes`.

This reduces the memory footprint significantly, and binary size.

Fixes #70621.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-09-16 21:00:04 +02:00
Yuri Sizov 48e1c19dea Merge pull request #81583 from AThousandShips/null_check_drivers_platform
[Drivers,Platform] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-15 19:48:18 +02:00
Yuri Sizov 55840c5d24 Merge pull request #80932 from m4gr3d/fix_hardware_keyboard_input_routing_main
Fix Android input routing logic when using a hardware keyboard
2023-09-14 15:21:28 +02:00
A Thousand Ships 3565d1bf7e [Drivers,Platform] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-12 20:13:32 +02:00
Rémi Verschelde df5376c4c0
Merge pull request #80761 from adamscott/change-default-android-package-unique-name
[Android] Change the default "org.godotengine" package name to "com.example"
2023-09-11 15:35:56 +02:00
Adam Scott 00e9bafb73
Change the default org.godotengine to com.example 2023-09-11 09:01:36 -04:00
Rémi Verschelde 08c578c54c
Merge pull request #81416 from akien-mga/uwp-ce-nest-qu-un-au-revoir
UWP: Remove platform port, needs to be redone from scratch for 4.x
2023-09-07 16:33:40 +02:00
Rémi Verschelde 2cd740fd7a
Merge pull request #81105 from SysError99/master-fix-js-mem-leak
Fix JavaScript callback memory leak issue
2023-09-07 16:32:06 +02:00
Rémi Verschelde 8de6405288
UWP: Remove platform port, needs to be redone from scratch for 4.x
The UWP platform port was never ported to the Godot 4.0+ API,
and it's now accumulating bitrot as it doesn't compile, and thus
we no longer propagate platform changes in it.

So we finally remove to acknowledge this state. There's still some
interest in reviving the UWP port eventually, especially as support
for Direct3D 12 will soon be merged, but when that happens it will
be easiest to redo it from scratch.
2023-09-07 15:01:59 +02:00
SysError99 6a90164a03 Fix JavaScript callback memory leak issue
Typo fix
2023-09-07 19:59:45 +07:00
Yuri Sizov d8ff69d53c Extract ScriptInstance to simplify includes
This allows to include script_instance.h directly in the
generated gdvirtual.gen.inc, and remove excessive includes
from the codebase.

This should also allow Resource to use GDVIRTUAL macros,
which wasn't possible previously due to a circular dependency.
2023-09-06 22:54:38 +02:00
Yuri Sizov 2282fc5de9 Merge pull request #81368 from m4gr3d/relax_android_plugin_v1_deprecation
Relax restriction on loading v1 Android plugins on Godot 4.2+
2023-09-06 14:49:43 +02:00
Yuri Sizov 2ced50f310 Merge pull request #81365 from bruvzg/ios_export_ext
[iOS export] Switch export target extension based on export type.
2023-09-06 14:49:40 +02:00
Yuri Sizov 07176632a6 Merge pull request #81339 from bruvzg/macos_fix_mvk_live_resize
[macOS] Fix live resize with the latest MoltenVK version.
2023-09-06 14:49:30 +02:00
Yuri Sizov 3c63dce3cd Merge pull request #80573 from KoBeWi/2k_lines_of_changes_created_at_2AM
Add EditorStringNames singleton
2023-09-06 14:49:02 +02:00
Rémi Verschelde bceac8c34f
Merge pull request #81340 from akien-mga/web-workaround-emscripten-3.1.42-lto-bug
Web: Workaround Emscripten 3.1.42+ LTO regression
2023-09-06 13:50:39 +02:00
Fredia Huya-Kouadio 12d96eeaef Relax restriction on loading v1 Android plugins on Godot 4.2+ 2023-09-06 02:59:44 -07:00
bruvzg 26951000ab
[iOS export] Switch export target extension based on export type. 2023-09-06 11:58:43 +03:00
bruvzg 208b379986
[macOS] Fix live resize with the latest MoltenVK version. 2023-09-05 16:21:08 +03:00
Rémi Verschelde b064008c07
Web: Workaround Emscripten 3.1.42+ LTO regression
Fixes #80010.
2023-09-05 14:58:52 +02:00
Fredia Huya-Kouadio 8cc7739197 Godot Android plugin re-architecture 2023-09-03 17:04:10 -07:00
kobewi 6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
ocean (they/them) bbafe14970 Build system: add option for MSVC incremental linking. 2023-08-29 18:53:45 -04:00
Rémi Verschelde 5b5471e30a
Merge pull request #78908 from zorbathut/pr_gitignore
Add static check for overzealous .gitignores and fix an example of such.
2023-08-29 12:41:53 +02:00
Rémi Verschelde 120abd12c2
Merge pull request #79504 from Pingar5/master
Android: Add option to always use WiFi to connect to remote debug
2023-08-28 15:02:13 +02:00
Rémi Verschelde 6584cd88d9
Merge pull request #78963 from bgie/comma_in_filename
Windows: Always double-quote path when launching explorer.exe to browse
2023-08-28 15:01:49 +02:00
Brennen Shaughnessy 40b08cb4b6
Android: Add option to always use WiFi to connect to remote debug 2023-08-28 13:13:36 +02:00
Brecht Kuppens 5608b1d411
Windows: Always double-quote path when launching explorer.exe to browse
Code now always double quotes the filename to use as command line
argument when calling explorer.exe. In particular, commas in a filename
would be interpreted by explorer.exe as separators for commands.

Similarly a trim_suffix for "file://" is assumed to be a mistake, this
could potentially be a PREfix that we want to strip, but never a suffix.
Since it didn't seem needed in the end, we removed it.
2023-08-28 12:46:50 +02:00
Emmanouil Papadeas c662491bd4
Fix `JavaScriptBridge.eval()` never returning PackedByteArray
It wrongly returned 20 on array buffers, which used to be the enumerator
value of Godot 3.x's type PoolByteArray, and now is the value of type Color,
while it should return 29 which is the enumerator value for PackedByteArray.
2023-08-28 11:37:55 +02:00
Yuri Sizov d476cdff34 Merge pull request #80918 from bruvzg/scons_wrp_deps
[Windows] Add main executable to the console wrapper dependencies to prevent simultaneous linking.
2023-08-25 14:58:55 +02:00
bruvzg 2e1f48ff6e
[Native File Dialogs] Refocus last focused window on close. 2023-08-24 09:34:58 +03:00
Fredia Huya-Kouadio 87102e358d Fix Android input routing logic when using a hardware keyboard
When a hardware keyboard is connected, all key events come through so we can route them directly to the engine.
This is not the case for soft keyboards, for which the current logic was designed as it requires extra processing.
2023-08-23 09:57:00 -07:00
bruvzg f37ace7036 [Windows] Add main executable to the console wrapper dependencies to prevent simultaneous linking. 2023-08-23 09:54:06 +03:00
Haoyu Qiu d026b37abd Fix various typos in classref 2023-08-22 18:05:50 +08:00
Hugo Locurcio 469c462b76
Add missing tutorials to documentation classes 2023-08-19 20:29:24 +02:00
Hugo Locurcio 6f1152bdbe
Add a `--audio-output-latency` command-line argument
This allows optimizing the audio output latency on higher-end CPUs,
especially in projects that do not expose a way to override this setting.
2023-08-17 14:45:17 +02:00
Rémi Verschelde c72b851dfb
Merge pull request #80104 from bruvzg/freedesktop_native_file_dialog
[Linux/Freedesktop] Implement native file selection dialog support.
2023-08-17 11:23:00 +02:00
Rémi Verschelde 9a48b14a2d
Merge pull request #80036 from PorkrollPosadist/fix-wayland-window-behavior
Use EWMH for `DisplayServerX11::_window_minimize_check()` implementation
2023-08-17 11:22:36 +02:00
Rémi Verschelde 314cdf456b
Merge pull request #79578 from Faless/web/4.x_dlink_visibility
[Web] Use `fvisibility=hidden` for side module when dlink_enabled.
2023-08-17 11:21:47 +02:00
Aaron Franke ada360affe
Add a button in the export dialog to fix missing texture formats 2023-08-17 02:56:42 -05:00
bruvzg 6cc314e0fa
[Linux/Freedesktop] Implement native file selection dialog support. 2023-08-17 10:56:16 +03:00
Rémi Verschelde 3907e53ff6
SCons: Disable C++ exception handling
Upon investigating the extremely slow MSVC build times in #80513, I noticed
that while Godot policy is to never use exceptions, we weren't enforcing it
with compiler flags, and thus still included exception handling code and
stack unwinding.

This is wasteful on multiple aspects:

- Binary size: Around 20% binary size reduction with exceptions disabled
  for both MSVC and GCC binaries.
- Compile time:
  * More than 50% build time reduction with MSVC.
  * 10% to 25% build time reduction with GCC + LTO.
- Performance: Possibly, needs to be benchmarked.

Since users may want to re-enable exceptions in their own thirdparty code
or the libraries they compile with Godot, this behavior can be toggled with
the `disable_exceptions` SCons option, which defaults to true.
2023-08-16 10:23:34 +02:00
Rémi Verschelde 6c3735cb7c
Merge pull request #80569 from m4gr3d/show_in_app_library_settings_main
Add export setting to control whether to show the Godot app in the app library
2023-08-16 09:13:30 +02:00
pikethom 7494ad6b54 Android stylus pressure and tilt support 2023-08-15 19:55:17 +12:00
Rémi Verschelde efdff9cbc2
Fix GCC -Wmaybe-uninitialized warnings 2023-08-14 14:35:35 +02:00
Fredia Huya-Kouadio 63d47dced0 Add export setting to control whether to show the Godot app in the app library 2023-08-13 09:54:10 -04:00
scgm0 05bc070f7c C#: Fix exporting for Android 2023-08-12 09:22:49 +08:00
Rémi Verschelde bc1aef88ee
SCons: Disable misbehaving MSVC incremental linking
Fixes #77968.
2023-08-10 14:04:19 +02:00
Rémi Verschelde 49f0d8cee3
Merge pull request #80279 from Sauermann/fix-x11-mouse-window-event-crash
Track hovered `Window` in `DisplayServerX11`
2023-08-10 00:43:00 +02:00
Rémi Verschelde 11ea4dc466
Merge pull request #80439 from bruvzg/macos_mouse_enter_exit
[macOS] Fix missing mouse exit events on window close.
2023-08-09 15:20:39 +02:00
Rémi Verschelde d255811443
Merge pull request #80404 from bruvzg/file_attribs
[FileAccess] Add methods to get/set "hidden" and "read-only" attributes on macOS/BSD and Windows.
2023-08-09 15:20:32 +02:00
Markus Sauermann a7c5849f98 Track hovered `Window` in `DisplayServerX11`
Send mouse-entered/exited window-events only when necessary
2023-08-09 12:20:23 +02:00
bruvzg 78caaf3717
[macOS] Fix missing mouse exit events on window close. 2023-08-09 10:23:57 +03:00
bruvzg 8aa6f29b56
[FileAccess] Add methods to get/set "hidden" and "read-only" attributes on macOS/BSD and Windows. 2023-08-08 21:51:32 +03:00
Tyler 3cf1e04579 Fix Windows console wrapper and icon being swapped
Fixes #80238.
2023-08-07 12:46:23 -04:00
Rémi Verschelde 6a0410bbc2
Merge pull request #80240 from bruvzg/x11_ext_checks
[X11] Do not fail DisplayServer init if non-essential extensions are missing.
2023-08-07 14:50:47 +02:00
Rémi Verschelde 048a164083
Merge pull request #79693 from bruvzg/com_ath
[Windows] Initialize COM as apartment-threaded.
2023-08-07 14:48:40 +02:00
Rémi Verschelde 9d6570af3b
Merge pull request #79456 from bruvzg/popup_area_fix
Fix native popups auto-closing when interacting with non-client area.
2023-08-07 14:47:02 +02:00
Rémi Verschelde faaf27f284
Fix various typos with codespell
Also includes typo fixes from #79993, #80068, #80276, and #80303.

Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-08-07 13:09:47 +02:00
bruvzg e26a6c36c8 Fix native popups auto-closing when interacting with non-client area. 2023-08-07 10:01:48 +03:00
Yuri Sizov dc6ea03101
Merge pull request #35555 from Calinou/add-version-project-setting
Add a "version" project setting and use it in new export presets
2023-08-04 21:01:15 +02:00
Rémi Verschelde cc6a60913a
Merge pull request #78325 from akien-mga/libpng-moar-intrinsics
libpng: Enable intrinsics on x86/SSE2, ppc64/VSX, and all arm/NEON
2023-08-04 17:04:07 +02:00
Rémi Verschelde 2c9b7fc7a8
libpng: Enable intrinsics on x86/SSE2, ppc64/VSX, and all arm/NEON 2023-08-04 14:57:21 +02:00
Haoyu Qiu 097c849395 Fix various typos in classref 2023-08-04 16:29:55 +08:00
Hugo Locurcio ad4480bf2e
Add a "version" project setting and use it in new export presets
This makes it easy to retrieve the project version at runtime
for display purposes, while simplifying the export preset configuration.
You can now leave the version empty unless you need to override it on a per-preset
basis.

Since export presets save the values of default values to the `export_presets.cfg`
file, this change only affects export presets created after this commit was merged.
2023-08-04 10:29:33 +02:00
bruvzg acff87ffda
[X11] Do not fail DisplayServer init if non-essential extensions are missing. 2023-08-04 10:58:14 +03:00
Yuri Sizov 1610fc2ae7 Merge pull request #78539 from EIREXE/input-info
Add the ability to get per-platform information for joypads
2023-08-03 22:37:45 +02:00
Álex Román Núñez 3aa340d081 Add the ability to get per-platform information for joypads.
This adds the ability for games to obtain platform-specific information about joypads such as their vendor/product ID, their XInput gamepad index or the real name of the device before it gets swapped out by the gamecontrollerdb's name.

This PR also includes a rebased version of #76045, this is because this PR is intended to be mainly to help people implementing Steam Input, as having the gamepad index is essential.
2023-08-02 22:30:30 +02:00
Yuri Sizov 49305df0e0 Merge pull request #80092 from Faless/web/npm_update
[Web] Update npm packages
2023-08-02 21:37:05 +02:00
Yuri Sizov 24049b6646 Merge pull request #79950 from bruvzg/win_app
[macOS Export] Disable unpacked .app bundle export on Windows.
2023-08-02 21:37:01 +02:00
bruvzg b240b5be84 [Windows] Do not force redraw window background on mouse pass-through region change. 2023-08-02 10:40:40 +03:00
Markus Sauermann 8c1ce404d7 Fix crash on Windows when closing `Window`
Send `WINDOW_EVENT_MOUSE_EXIT` when a window is destroyed.

Ensure, that on Windows, the event_callback is still valid during
destroying the `Window`.
2023-08-02 00:17:25 +02:00
PorkrollPosadist 5666656d42 Use EWMH for DisplayServerX11::_window_minimize_check() implementation 2023-07-31 16:35:18 -04:00
Fabio Alessandrelli 61e7d47344 [Web] Update npm packages 2023-07-31 21:43:59 +02:00
Fredia Huya-Kouadio 867fc02551 Fix npe when registering the sensors. 2023-07-28 18:58:16 -07:00
Yuri Sizov 0c2399d6ec Merge pull request #63826 from deakcor/dev_clipboard
Add `clipboard_has/get_image` methods to DisplayServer
2023-07-27 15:22:16 +02:00
bruvzg 56bd7adae4 [macOS Export] Disable unpacked .app bundle export on Windows. 2023-07-27 13:21:23 +03:00
Yuri Sizov 63411859db Merge pull request #79351 from Repiteo/dotnet-handle-warnings
C#: Fix MSVC dotnet builds failing if running `dev_mode`
2023-07-26 18:40:06 +02:00
bruvzg a0c388d4e1 [Windows] Try using objcopy and strip with prefix and without prefix. 2023-07-25 09:52:38 +03:00
Yuri Sizov bec47cdbbc Merge pull request #79846 from Faless/web/no_body_length
[Web] Always return -1 as body length in HTTPClientWeb
2023-07-24 19:33:48 +02:00
Yuri Sizov c8e191b7f4 Merge pull request #79724 from Repiteo/gcc-windows-fixes
Fix gcc builds failing on windows
2023-07-24 19:33:19 +02:00
Fabio Alessandrelli f4713d235a [Web] Always return -1 as body length in HTTPClientWeb.
Body length cannot be reliably retrieved from the web.
Reading the "content-length" value will return a meaningless value when
the response is compressed, as reading will return uncompressed chunks
in any case, resulting in a mismatch between the detected body size and
the actual size returned by repeatedly calling read_response_body_chunk.

Additionally, while "content-length" is considered a safe CORS header,
"content-encoding" is not, so using the "content-encoding" to decide if
"content-length" is meaningful is not an option either.

We simply must accept the fact that browsers are awful when it comes to
networking APIs.
2023-07-24 08:57:02 +02:00
Yuri Sizov 88c1e0d528 Merge pull request #79350 from kleonc/screen_to_pixel_byte_to_float_conversion_fix
Fix byte to float color conversion in `DisplayServerWindows::screen_get_pixel`
2023-07-21 17:54:21 +02:00
Thaddeus Crews d848c95748
Fix gcc builds failing on windows 2023-07-20 18:01:52 -05:00
bruvzg 4bfb820d32 [Windows] Initialize COM as apartment-threaded. 2023-07-20 12:14:16 +03:00
Yuri Sizov 0c2144da90 Remove excessive include that breaks compilation on Windows 2023-07-18 22:09:48 +02:00
Yuri Sizov 8f175a8649
Merge pull request #78958 from m4gr3d/refactor_android_plugin_packaging_main
Re-architect how Android plugins are packaged and handled at export time
2023-07-18 20:47:41 +02:00
Fredia Huya-Kouadio b52e1be2c2 Clean up the XR features parameters from core
Following on the previous commit, the XR features logic have now be moved to the Godot OpenXR loader plugin.

See https://github.com/GodotVR/godot_openxr_loaders/pull/38
2023-07-18 19:14:53 +02:00
Fredia Huya-Kouadio d17811c814 Re-architect how Android plugins are packaged and handled at export time
The previous packaging format for Godot Android plugins consisted of the plugin's `gdap` config file accompanied by binaries defined in the `gdap` file.
This format is now deprecated (starting with Godot 4.2), and instead Godot Android plugins are now packaged as `EditorExportPlugin` plugins.

The `EditorExportPlugin` class has been updated with the following methods to provide the necessary set of functionality:
- `_supports_platform`: returns true if the plugin supports the given platform
- `_get_android_dependencies`: retrieve the set of android dependencies (e.g: `org.godot.example:my-plugin:0.0.0`) provided by the plugin
- `_get_android_dependencies_maven_repos`: retrieve the urls of the maven repos for the provided android dependencies
- `_get_android_libraries`: retrieve the local paths of the android libraries (AAR files) provided by the plugin
- `_get_android_manifest_activity_element_contents`: update the contents of the `<activity>` element in the generated Android manifest
- `_get_android_manifest_application_element_contents`: update the contents of the `<application>` element in the generated Android manifest
- `_get_android_manifest_element_contents`: update the contents of the `<manifest>` element in the generated Android manifest
2023-07-18 19:14:53 +02:00
Yuri Sizov e8aa8c17d2
Merge pull request #79574 from bruvzg/win_nat_d
[Windows] Implement native file selection dialog support.
2023-07-18 19:04:40 +02:00
bruvzg d3ca91ad6a [Windows] Implement native file selection dialog support. 2023-07-18 17:23:58 +03:00
Yuri Sizov ec66c53d52 Merge pull request #79572 from bruvzg/mac_bg_ws_sync
[macOS] Fix uncapped frame rate for windows in the non-active workspaces.
2023-07-18 15:10:09 +02:00
Vincent D c13e3a9fb0 add clipboard get image methods for windows and macos
Co-Authored-By: RedworkDE <10944644+RedworkDE@users.noreply.github.com>
Co-Authored-By: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-07-17 23:47:27 +02:00
Yuri Sizov 57919beb05
Merge pull request #76821 from m4gr3d/prototype_godot_service_main
Refactor Godot Android architecture
2023-07-17 21:11:21 +02:00
Thaddeus Crews 897334a366
Allow MSVC dev_mode builds to succeed with dotnet
• Added #else section to mono #ifdef checks in relevant export_plugin scripts
2023-07-17 11:35:38 -05:00
Fabio Alessandrelli 5eed870a6a [Web] Use fvisibility=hidden for side module when dlink_enabled.
This hugely reduces the number of exports, making it acceptable for
browsers.

Note that dlink + threads is still not working due to upstream issues
with the pthread emulation library.

Should hopefully be solved once emscripten move to native WASM threads.
2023-07-17 13:18:02 +02:00
Phil Hudson 076ef3bf6a iOS: Add `export_project_only` flag 2023-07-17 11:45:03 +02:00
bruvzg 2ee45dc293
[macOS] Fix uncapped frame rate for windows in the non-active workspaces. 2023-07-17 10:29:49 +03:00
Fredia Huya-Kouadio 29bbc17b48 Godot Android re-architecture
Decouples the Godot java entry point from the Android Fragment component. This enables the Godot component to be more easily reused across different types of Android components including Activities and Services.
2023-07-16 18:56:58 -07:00
Fredia Huya-Kouadio 00c782d959 Renaming `Godot.java` to `GodotFragment.java` to better reflect its nature and role 2023-07-16 18:56:57 -07:00
Hendrik Brucker 7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
Yuri Sizov 70b5330b46 Merge pull request #78164 from 0xafbf/allow-export-tv-and-launcher
Add options to show icon in Android TV and run app as Android launcher
2023-07-14 18:48:54 +02:00
bruvzg 4790da7900
[macOS] Implement optional native file selection dialog support for sandboxed apps. 2023-07-12 22:36:24 +03:00
kleonc 9d45dd812f Fix byte to float color conversion in DisplayServerWindows::screen_get_pixel 2023-07-12 21:31:02 +02:00
Yuri Sizov 1da09fd477 Merge pull request #79062 from MewPurPur/svg-optimizations
Optimize SVG icons and remove unused Transpose icon
2023-07-12 21:02:53 +02:00
Yuri Sizov ff689003a5 Merge pull request #77993 from bruvzg/key_lbl_from_p
Implement DisplayServer.keyboard_get_label_from_physical method.
2023-07-12 21:02:37 +02:00
Yuri Sizov 55b74c7cdf Merge pull request #76045 from Eoin-ONeill-Yokai/steaminput-fix
Prevent double input events on gamepad when running through steam input
2023-07-12 17:16:36 +02:00
Yuri Sizov 661c3954a6 Merge pull request #73443 from akien-mga/unbundle-openxr
Allow unbundling OpenXR (for Linux distros)
2023-07-12 17:15:25 +02:00
bruvzg 7b7f6d45d6
Implement iOS one-click deploy. 2023-07-12 16:25:04 +03:00
Yuri Sizov 5dff3c4484 Merge pull request #78538 from Sauermann/fix-code-simplifications
Remove unnecessary value assignments throughout the codebase
2023-07-12 15:09:26 +02:00
Yuri Sizov 2b47f6715e Merge pull request #78437 from bruvzg/set_icon
Add error checks and harmonize behavior of the `set_icon` method.
2023-07-12 15:09:14 +02:00
Yuri Sizov 6960a1d0e8 Merge pull request #78248 from felaugmar/load-svg-adjustable-scale
Added `Image::load_svg_from_(buffer|string)`
2023-07-12 15:09:03 +02:00
Yuri Sizov 64689c146c Merge pull request #79089 from bruvzg/android_echo
[Android] Set `echo` property for the physical keyboard events.
2023-07-12 14:18:30 +02:00
Rémi Verschelde 5dbbdaf27b
Merge pull request #79284 from akien-mga/fix-linux-os-move_to_trash
Fix Linux `move_to_trash` wrongly reporting files as not found
2023-07-11 11:30:21 +02:00
Rémi Verschelde a6e75f3971
Fix Linux `move_to_trash` wrongly reporting files as not found
We can't rely on the error code from `gio` or `kioclient5`, in my
rudimentary testing they return `1` for both missing files and other
situations like not having a Trash can on the mounted volume.

Fixes #79108.
2023-07-11 09:55:27 +02:00
Eoin O'Neill 8de98dbf21 Prevent double input events on gamepad when running through steam input
During GDC and general testing on Steam Deck units, we found that single
gamepads would often register inputs twice under certain circumstances.
This was caused by SteamInput creating a new virtual device, which Godot
registers as a second gamepad. This resulted in two gamepad devices
reporting the same button presses, often leading to buggy input response
on games with no multi-device logic and other-wise could cause intended
Steam rebindings to not work as intended (for example, swapping o and x
on a playstation pad if that feature isn't supported by the game.)

SDL gets around this by taking in a list of devices that are to be
ignored. When valve sees a controller that wants to be rebound via
SteamInput, they push a new VID/PID entry onto the environment
variable `SDL_GAMECONTROLLER_IGNORE_DEVICES` for the original gamepad
so that all game inputs can be read from the virtual gamepad instead.

This leverages the same logic as we are already using SDL gamepad
related HID mappings.
2023-07-10 15:26:33 -07:00
Rémi Verschelde dcd16a5750
Linux: Fix build with `use_sowrap=no` and various warnings/errors 2023-07-10 14:34:01 +02:00
Rémi Verschelde 8a06ec979e
Change explicit 'Godot 4.0' references to 'Godot 4'
Fixes #79276.
2023-07-10 13:08:11 +02:00
Kamil Brzoskowski 3cd865dbe8
Fix formatting of dlopen error message on Windows
And harmonize the format for all platforms.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-07-09 23:39:45 +02:00
Rémi Verschelde 79b31a8357
Merge pull request #79105 from akien-mga/linux-libsquish-lacks-pkgconfig
Linux: Link libsquish directly when unbundling, .pc file unreliable
2023-07-08 18:22:18 +02:00
Rémi Verschelde ce32fe974e
Merge pull request #79048 from sepTN/its-platform-not-plafrom
Fix a typo in the TLSOptions documentation
2023-07-08 18:21:28 +02:00
Rémi Verschelde 988abb2161
Merge pull request #79016 from bruvzg/fix_win_initial_ne_fs
[Windows] Fix setting initial non-exclusive window mode.
2023-07-08 18:21:04 +02:00
Rémi Verschelde 43c0fa7f4b
Merge pull request #78797 from Calinou/remove-redundant-vformat
Remove uses of `vformat()` with no placeholders
2023-07-08 18:18:35 +02:00
Septian b88b6b4f48 fix typo on TLSOptions.xml and library_godot_display.js 2023-07-08 13:34:50 +07:00
MewPurPur fe194f8db0 Optimize SVG icons and remove unused Transpose icon 2023-07-07 17:58:15 +03:00
Rémi Verschelde 3a3ec4add1
Merge pull request #78263 from bruvzg/fl_all
[Windows] Flash both the window caption and taskbar button on `request_attention`.
2023-07-07 16:02:38 +02:00
Rémi Verschelde f1e63b808a
Merge pull request #79101 from akien-mga/linux-unbundle-brotli
Linux: Allow unbundling brotli to use system library
2023-07-07 08:35:44 +02:00
Rémi Verschelde 69dbbcc313
Merge pull request #79092 from akien-mga/doctool-remove-version-attribute
Doctool: Remove version attribute from XML header
2023-07-07 08:34:55 +02:00
Rémi Verschelde 9522ef67d5
Merge pull request #79010 from bruvzg/set_native_icon_crash
[macOS] Fix `set_native_icon` crash with empty or invalid ICNS file.
2023-07-07 08:32:56 +02:00
Rémi Verschelde b3b4f4c1c9
Linux: Link libsquish directly when unbundling, .pc file unreliable 2023-07-06 15:32:42 +02:00
Rémi Verschelde 153c4a4c4f
Linux: Allow unbundling brotli to use system library 2023-07-06 15:26:38 +02:00
Rémi Verschelde 81064cc239
Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).
2023-07-06 10:08:21 +02:00
bruvzg c687bfa697
[Android] Set `echo` property for the physical keyboard events. 2023-07-06 09:53:50 +03:00
Rémi Verschelde 346f1ab86b
Bump version to 4.2-dev
Keep on waitin'
2023-07-05 22:07:03 +02:00
bruvzg db0109b237 [Windows] Fix setting initial non-exclusive window mode. 2023-07-04 13:09:26 +03:00
bruvzg 618795a214
[macOS] Fix set_native_icon crash with empty or invalid ICNS file. 2023-07-04 09:09:40 +03:00
bruvzg 9c5a0c6c10
Add error checks and harmonize behavior of the set_icon method. 2023-07-03 13:48:28 +03:00
Ben Rog-Wilhelm 90f3992036 Fix: incorrectly .gitignored files. 2023-07-01 08:41:15 -05:00
Hugo Locurcio dcc92c174e
Remove uses of `vformat()` with no placeholders
This is identical to passing the string directly.
2023-06-28 16:27:55 +02:00
Hugo Locurcio 0b19ec3498
Display a message about missing C# support on Android/iOS/Web platforms
When trying to export a C# project, this displays an error message after
creating a export preset for an unsupported platform.

Support for these platforms is planned for a future release.
2023-06-24 00:09:06 +02:00
Felipe Augusto Marques 26eb3db234 Added Image's `load_svg_from_(buffer|string)`
No core dependency to the svg module.
2023-06-23 00:43:43 -03:00
Rémi Verschelde d586096415
Merge pull request #72720 from pkdawson/fix-mouse-capture
DisplayServerWindows: Fix mouse capture when button up message is missed
2023-06-22 18:29:34 +02:00
Markus Sauermann 890fdd56df Code simplifications
CPPcheck found most of them.

no need to assign the variable twice:
- AnimationTrackEditTypeAudio
- SSEffects

variable is assigned in all if-else clauses:
- EditorHelp
- AndroidInputHandler
- MenuBar
- ShaderCompiler

same if clause:
- ItemList

clearing an empty bitfield has no effect:
- Viewport
2023-06-21 22:37:26 +02:00
Rémi Verschelde 90446fe9f3
SCons: Move platform logo/run icon to `export` folder
Follow-up to #75932.
Since these icons are only used by the export plugin, it makes sense to
move them and generate the headers there.

The whole `detect.is_active()` logic seems to be a leftover from before
times, as far back as 1.0-stable it already wasn't used for anything.

So I'm removing it and moving the export icon generation to
`platform_methods`, where it makes more sense.
2023-06-20 13:16:37 +02:00
Rémi Verschelde ddaefb3cd6
Merge pull request #78455 from aaronfranke/macos-fix-tex-format-valid
macOS: Finish checking templates before validating texture formats
2023-06-20 13:14:23 +02:00
Rémi Verschelde 65628f23c5
Merge pull request #78175 from phil-hudson/fix-#78105
Android: Set pending intent flag to stop insta-crash
2023-06-20 13:14:07 +02:00
Phil Hudson ce7f648694 fix(android): set pending intent flag to stop insta-crash
fix(android): add conditional check for minimum sdk version

fix(android): formatting

fix(android): formatting

fix(android): formatting

fix(android): formatting again
2023-06-20 16:56:59 +08:00
Aaron Franke a981158d1a
macOS: Finish checking templates before validating texture formats 2023-06-19 21:36:31 -05:00
Rémi Verschelde 217a20a8a0
Merge pull request #78448 from akien-mga/black-23.3.0
CI: Update static checks to black 23.3.0
2023-06-20 00:05:39 +02:00
Rémi Verschelde 356a602186
Merge pull request #74511 from AThousandShips/win_cursor_fix
Fix clearing custom cursor
2023-06-20 00:00:57 +02:00
Rémi Verschelde c9c941e339
CI: Update static checks to black 23.3.0
And apply it to the codebase, removing empty lines at the start of blocks.
2023-06-19 23:33:02 +02:00
Rémi Verschelde eb9c96b87c
Merge pull request #78123 from YeldhamDev/if_you_want_anything_done,_do_it_yourself
Allow exporting release Android builds without a debug keystore
2023-06-19 10:27:44 +02:00
Rémi Verschelde 01e84b1da1
Merge pull request #67158 from amoriqbal/fix_error_message
Fix the conditions for firing 'No such file or directory' error on Linux `move_to_trash`
2023-06-19 10:26:50 +02:00
Michael Alexsander 41a75cfa4f
Allow exporting release Android builds without a debug keystore 2023-06-19 01:00:13 -03:00
Rémi Verschelde 34a07b81ae
Allow unbundling OpenXR (for Linux distros)
Copy XrMatrix4x4f_CreateProjectionFov to our OpenXRUtil, instead of relying
on a private header.
2023-06-16 16:25:04 +02:00
bitsawer 3c42496fb0 Fix Clang dev_mode build const string conversion 2023-06-16 14:54:36 +03:00
Rémi Verschelde 598378513b
Merge pull request #78319 from bruvzg/fix_lipo_fa
[macOS export] Fix lipo file handling.
2023-06-16 10:24:37 +02:00
Rémi Verschelde 6d1ca52792
Merge pull request #78306 from m4gr3d/cleanup_launch_flow_main
Add parameters for the Godot Activity starting intent to allow restarting or force-quitting the engine
2023-06-16 10:23:50 +02:00
bruvzg c7f4e3fd25 [macOS export] Fix lipo file handling. 2023-06-16 11:07:56 +03:00
bruvzg 28db3c7158 [DisplayServer] Add method to check if native window is focused. 2023-06-16 10:27:52 +03:00
Fredia Huya-Kouadio 0664f5ec3b Add parameters for the Godot Activity starting intent to allow restarting or force-quitting the engine
Follow-up code cleanup for https://github.com/godotengine/godot/pull/78129
2023-06-15 21:41:49 -07:00
Danil Alexeev 2d2b2cadfa
Fix `bsd` feature tag includes only "other BSDs" 2023-06-15 16:25:18 +03:00
bruvzg 49af2582c4 [Windows] Flash both the window caption and taskbar button on `request_attention`. 2023-06-15 11:04:54 +03:00
Álex Román Núñez 938a837056 Disable NVIDIA's threaded optimization on Windows 2023-06-13 11:47:40 +02:00
Rémi Verschelde 9e7349bda3
Merge pull request #78151 from jpcerrone/fix_windowed_move_problems
Fix window resizing problems on Windows
2023-06-13 10:27:14 +02:00
Andrés Botero e01a2693d5 Add options to show icon in Android TV and run app as Android launcher 2023-06-12 22:02:48 -05:00
RedworkDE 5c57b3aba4 Fix docs after renaming export option 2023-06-12 23:59:55 +02:00
Rémi Verschelde 54a8adfd50
Merge pull request #75984 from KoBeWi/ConsoleMcWrap
Rename console script to wrapper
2023-06-12 22:54:24 +02:00
jpcerrone a80584664c Fix window resizing problems on Windows
Fixes godotengine#76847, Fixes godotengine#74286
Reorders problematic steps from the DisplayServerWindows::window_set_mode function.
These were causing a resize with the dimensions of the previously used mode instead
of the current one.
2023-06-12 15:26:34 -03:00
bruvzg 974a7a89c6
[iOS] Fix orientation change in runtime. 2023-06-12 14:13:53 +03:00
Rémi Verschelde 54ab17eb21
Merge pull request #78129 from m4gr3d/fix_open_new_project_main
Fix issue causing the last edited project to open while switching to another one
2023-06-12 11:57:59 +02:00
Rémi Verschelde 26e5a98306
Merge pull request #77770 from jpcerrone/fix_minimize_missing
Fix minimize button missing in non-resizable projects
2023-06-12 11:39:08 +02:00
Fredia Huya-Kouadio a951a14b16 Fix issue causing the last edited project to open while switching to another one.
Fixes https://github.com/godotengine/godot/issues/76562
2023-06-11 22:29:35 -07:00
Fredia Huya-Kouadio dcd31a25b4
Merge pull request #78083 from m4gr3d/fix_multitouch_detection_spatial_viewport_main
Fix spatial viewport multitouch detection support
2023-06-11 18:08:59 -07:00
Fredia Huya-Kouadio 2c050cc17e Fix spatial viewport multitouch detection support
Regression introduced by https://github.com/godotengine/godot/pull/77498
2023-06-10 08:47:24 -07:00
Aaron Franke 944fbce347
Enable S3TC_BPTC but not ETC2_ASTC by default 2023-06-09 11:38:29 -05:00
Dominik 19ce63d875 Added a few additional GUIDs to list of hardcoded IDs in is_xinput_device 2023-06-09 15:02:19 +02:00
Rémi Verschelde a5a23678c4
Merge pull request #78029 from bruvzg/macos_fix_popup_ime_focus
[macOS] Fix IME focus in popup windows.
2023-06-09 11:08:06 +02:00
Rémi Verschelde 759309ba18
Merge pull request #77977 from zaevi/fix_windows_popup_ime
Fix IME doesn't work under Popup on Windows.
2023-06-09 11:06:02 +02:00
bruvzg fe2d9e5bdf
[macOS] Fix IME focus in popup windows. 2023-06-09 08:03:13 +03:00
Rémi Verschelde 9e4315bb50
Style: Harmonize header includes in platform ports
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:

Includes from the platform port or module should be included with relative
paths (relative to the root folder of the modular component, e.g.
`platform/linuxbsd/`), in their own section before Godot's "core" includes.

The `api` and `export` subfolders also need to be handled as self-contained
(and thus use relative paths for their "local" includes) as they are all
compiled for each editor platform, without necessarily having the api/export
matching platform folder in the include path.
E.g. the Linux editor build will compile `platform/android/{api,export}/*.cpp`
and those need to use relative includes for it to work.
2023-06-08 15:19:19 +02:00
bruvzg 08e8ff371d
Implement keyboard_get_label_from_physical method. 2023-06-08 10:13:31 +03:00
Fredia Huya-Kouadio b2cd6a8a95 Add setting to control the window used to run the project for the Android editor
The follow options were added to the (new) `run/window_placement/android_window` editor setting:

- `Same as Editor`: run the project in the same window as the editor
- `Side-by-side with Editor`: run the project in an adjacent window to the editor
- `Auto`: choose how to run the project based on the device screen size
2023-06-07 18:32:52 -07:00
Zae 1b149b7440 Fix IME doesn't work under Popup on Windows. 2023-06-08 02:40:36 +08:00
Rémi Verschelde 2ae5a0704a
X11: Fix vformat ambiguous int types for GCC 10 (again) 2023-06-07 14:57:51 +02:00
MJacred 2c5e2196bd Replace get_rendering_device() call to prevent crashes on OpenGL.
And make OpenGL video adapter info align with Vulkan.
2023-06-06 23:29:36 +02:00
Rémi Verschelde 0010b34a37
Merge pull request #75099 from mxnemu/add-default-x11-error-handler
[Linux/X11] Add a default error handler for X11 to avoid crashes.
2023-06-05 18:04:49 +02:00