Commit Graph

6010 Commits

Author SHA1 Message Date
Patrick Gelvin 8495224d13 Require Apple Team ID when using notarytool
Adds a requirement that the Team ID is specified when
notarizing with the new notarytool.

Fixes #70307
2023-01-12 15:00:07 -07:00
Pedro J. Estébanez 03b96c1c4b Implement color flash avoidance for Windows 2023-01-12 21:42:51 +01:00
Rémi Verschelde 1baddad599
Merge pull request #71269 from bruvzg/win_kill
[Windows] Allow OS::kill method to terminate non-child processes.
2023-01-12 15:00:36 +01:00
Rémi Verschelde 94cf65a73a
Merge pull request #71231 from tom95/fix-android-manifest-hand-tracking-v2
Fix writing value for hand-tracking V2.0 to AndroidManifest.xml
2023-01-12 14:31:41 +01:00
bruvzg 01adf738fa [Windows] Allow OS::kill method to terminate non-child processes. 2023-01-12 14:41:57 +02:00
Rémi Verschelde 0e4e782ada
Merge pull request #70714 from Calinou/doc-os-stdin
Improve documentation for `OS.read_string_from_stdin()`
2023-01-12 09:24:47 +01:00
Hugo Locurcio 86b8176864
Improve documentation for `OS.read_string_from_stdin()`
This makes it clearer that calls to this method are blocking.

The unused method parameter was also removed.
2023-01-11 19:57:25 +01:00
Tom Beckmann 0116d50fdd Fix writing value for hand-tracking V2.0 to AndroidManifest.xml 2023-01-11 17:26:42 +01:00
Juan Linietsky c5390f203d Prevent opening Windows console files
Fixes #20110.
2023-01-11 15:05:29 +01:00
bruvzg 0b309cded8
[iOS Export] Check Xcode output and display errors if code signing, project build or .ipa export failed. 2023-01-11 10:49:11 +02:00
RedMser 951349c481 Fix confined mouse mode not updating on resize 2023-01-10 20:00:52 +01:00
Fabio Alessandrelli 6b2abf4605
Merge pull request #70626 from Faless/web/4.x_expose_force_fs_sync
[Web] Expose API to force file system sync.
2023-01-09 21:18:47 +01:00
dependabot[bot] a20c8443af
Bump json5 from 1.0.1 to 1.0.2 in /platform/web
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 13:40:10 +00:00
Marius Seufzer ee5057a42e
iOS: Add new model identifiers for DPI metrics
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-01-09 10:58:43 +01:00
Juan Linietsky 2b815df3c1 Use BitField<> in core type masks
* All core types masks are now correctly marked as bitfields.
* The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks.
* Most bitmask operations replaced by functions in BitField<>
* Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is.
* Documentation and API dump updated to reflect bitfields in core types.
2023-01-08 22:17:40 +01:00
bruvzg 9dc4f4096c [Windows] Fix primary screen detection. 2023-01-07 15:41:06 +02:00
bruvzg 2718a7b7d3
Add support for the custom initial screen for the main window, fix primary screen detection. 2023-01-07 11:14:35 +02:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Rémi Verschelde 8791e333da
Merge pull request #70624 from bruvzg/cur_sc
Improve `window_set_current_screen` and fix secondary window initial mode and positions.
2023-01-03 15:56:05 +01:00
Rémi Verschelde f0893890e1
Merge pull request #70482 from bruvzg/ios_pencil
[iOS] Add Apple Pencil pressure and tilt support.
2023-01-03 15:51:39 +01:00
Rémi Verschelde 8580afdd95
Merge pull request #70498 from bruvzg/macos_tilt_fix
[macOS] Fix stylus tilt Y direction.
2023-01-03 15:50:28 +01:00
Rémi Verschelde 6dc9629b45
Merge pull request #63483 from qianjunakasumi/qianjunakasumi/master
Introduce `appCategory` attribute of android to set category
2023-01-03 12:38:54 +01:00
Rémi Verschelde a140d469d7
Merge pull request #70612 from floppyhammer/fix-dark-title-bar
Fix dark title bar on Windows 11
2023-01-03 12:18:18 +01:00
千橘 雫霞 467b5f23a0
Introduce `appCategory` attribute of android to set category 2023-01-01 10:19:22 +08:00
bruvzg f7955633de
Improve `window_set_current_screen` and fix secondary window initial mode and positions. 2022-12-29 09:43:39 +02:00
bruvzg cebefc9f5d
[Export] Add one-click deploy over SSH for the desktop exports.
Add one-click deploy over SSH for the desktop exports.
Add ZIP export option for Linux and Windows.
Change export plugin icons to SVG format.
2022-12-29 09:42:00 +02:00
Riteo 3960c6b8f9 Allow building X11 without Vulkan
This limit was likely introduced when Vulkan was the only option.
2022-12-27 21:47:26 +01:00
Fabio Alessandrelli 615fd98620 [Web] Expose API to force file system sync.
Mostly useful for modules and extensions that can't use FileAccess to
write files.
2022-12-27 12:33:41 +01:00
floppyhammer c186b511c3 Fix dark title bar 2022-12-27 14:54:38 +08:00
Rémi Verschelde f7cf9fb148
Merge pull request #67668 from nikitalita/apk-signer
Improve get_apksigner_path() robustness
2022-12-23 23:44:56 +01:00
Rémi Verschelde 3822ba4c96
Merge pull request #67759 from TechnoPorg/jni-64-bit-arrays
Improve support for 64-bit types on Android.
2022-12-23 23:44:42 +01:00
bruvzg 223a612c0c
[iOS] Add Apple Pencil pressure and tilt support. 2022-12-23 23:44:10 +02:00
bruvzg 5478f9b842
[macOS] Fix stylus tilt Y direction. 2022-12-23 23:39:46 +02:00
Marius Seufzer 90c34699d6
fix contentScaleFactor on iOS 2022-12-23 14:57:56 +01:00
Rémi Verschelde 865c637279
SCons: Fix `separate_debug_symbols` option for Windows/MinGW 2022-12-21 13:52:49 +01:00
bruvzg 3d8a942a56
Fix reading Unicode from stdio. 2022-12-21 09:07:59 +02:00
Hugo Locurcio 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
Selene29 6e6c28f6ec add missing comma in file filter 2022-12-17 13:45:22 +01:00
Fredia Huya-Kouadio da8b468074 Add boot splash for the Godot Android Editor 2022-12-16 10:49:28 -08:00
Rémi Verschelde 2e657e51f8
Merge pull request #69477 from bruvzg/bplist_and_fwrk
[macOS/iOS] Use framework Info.plist to determine library name.
2022-12-16 13:48:02 +01:00
Rémi Verschelde f8f496ec3b
Merge pull request #69678 from Sauermann/fix-slider-button-up
Fix colorpicker slider bug with mouse-up outside of popup
2022-12-16 13:47:53 +01:00
bruvzg 104258c5c5
[macOS/iOS] Use framework Info.plist to determine library name. 2022-12-16 11:42:29 +02:00
Haoyu Qiu 207e52c161 Fix String::word_wrap() for long words
- Changes `TextServer.string_get_word_breaks()`
  - Returns pairs of boundary start and end offsets
  - Accepts `chars_per_line` to return line breaks
- Removes `String::word_wrap()`

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-12-16 13:18:57 +08:00
Rémi Verschelde 346efd29e0
Fix typos with codespell 2022-12-15 12:24:08 +01:00
Fredia Huya-Kouadio ec4de82ab3
Merge pull request #69990 from exoticorn/fix-android-touch-input
Fix ambiguous touch input events on Android
2022-12-14 18:23:17 -08:00
Dennis Ranke 408000752c handle ambiguous input events as touch events
there can be events can have both SOURCE_TOUCHSCREEN and SOURCE_STYLUS. handle them as touch events rather than mouse events.
2022-12-12 23:33:46 +01:00
Rémi Verschelde 8ab653c7ea
Merge pull request #69966 from bruvzg/ios_fix_single_line_input_and_offsets
[iOS] Fix broken single line input and incorrect selection / caret position.
2022-12-12 17:30:11 +01:00
bruvzg 13eb0a6592
[iOS] Fix broken single line input and incorrect selection / caret position. 2022-12-12 18:16:10 +02:00
oOjor-elOo 2507ee5ca4 Windows: Validate that the font family name exists before trying to get the font family
I didn't have the first emoji font installed, which led an an exception when calling font_collection->GetFontFamily() no the new rows.
2022-12-12 15:44:54 +01:00
Rémi Verschelde f1edd03d4c
Merge pull request #69718 from groud/finally_rename_gdnative_to_gdextension
Rename all gdnative occurences to gdextension
2022-12-12 11:43:59 +01:00
Hugo Locurcio 6799d000b1
Only support XDG directory path configuration on Linux
XDG support breaks when running Windows builds via WINE.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-12-12 11:43:16 +01:00
Gilles Roudière be1c9d677d Rename all gdnative occurences to gdextension
Non-exhaustive list of case-sensitive renames:

GDExtension -> GDNative
GDNATIVE -> GDEXTENSION
gdextension -> gdnative
ExtensionExtension ->Extension (for where there was GDNativeExtension)
EXTENSION_EXTENSION ->EXTENSION (for where there was GDNATIVE_EXTENSION)
gdnlib -> gdextension
gdn_interface -> gde_interface
gdni -> gde_interface
2022-12-12 11:04:57 +01:00
nikitalita 4fec34808d fix dbus and fontconfig links 2022-12-09 09:05:06 -08:00
Rémi Verschelde 0a3f66471e
Merge pull request #69712 from bruvzg/real_size
Rename `window_get_real_size`, add position counterpart.
2022-12-07 14:29:46 +01:00
Rémi Verschelde 39ad411369
Merge pull request #69707 from bruvzg/x11_exfs
[Linux/X11] Split fullscreen mode into `WINDOW_MODE_EXCLUSIVE_FULLSCREEN` and `WINDOW_MODE_FULLSCREEN` to improve multi-window handling.
2022-12-07 14:29:37 +01:00
Rémi Verschelde dedca54754
Merge pull request #69686 from bruvzg/win_mgmt_fixes_batch1
[Windows] Window management fixes.
2022-12-07 13:25:58 +01:00
Rémi Verschelde b3c7822fad
Merge pull request #69638 from bruvzg/macos_notarytool
[macOS export] Add support for Xcode notarytool.
2022-12-07 13:25:12 +01:00
bruvzg 9189c96aef
[macOS export] Add support for Xcode notarytool. 2022-12-07 13:01:12 +02:00
bruvzg edf13eb5a6
Rename `window_get_real_size` to `window_get_size_with_decorations`, add `window_get_position_with_decorations`. 2022-12-07 11:07:30 +02:00
Markus Sauermann e18107a57c Fix Determining Window for Touchscreen
DisplayServer::screen_is_touchscreen will likely never utilize its
parameter p_screen.
This PR replaces this function by DisplayServer::is_touchscreen_available()
with the same functionality.
This solves the problem, that a SubViewport was used for determining
the screen, which resulted in error messages.
2022-12-07 09:54:29 +01:00
bruvzg ad0f6ff85b
[Linux/X11] Split fullscreen mode into `WINDOW_MODE_EXCLUSIVE_FULLSCREEN` and `WINDOW_MODE_FULLSCREEN` to improve multi-window handling. 2022-12-07 09:54:02 +02:00
bruvzg e1cff4be9b [Windows] Window management fixes.
Fix popup menus having incorrect scale when main window is in full-screen mode and multiple monitors with different DPI are used.
Prevent mouse move code from accessing deleted window data (and creating zombie records in the windows map).
2022-12-06 23:56:21 +02:00
Markus Sauermann b44e6bb42b Fix colorpicker slider bug with mouse-up outside of popup
When releasing the mouse button outside of the popup while dragging
a slider, the slider still gets adjusted by mouse-move events.

The reason for this bug is that the mouse-up event is sent to the
focused window (main editor window) instead of the colorpicker
popup window.

This PR adjusts the linuxbsd X11 DisplayServer to send the event to the
correct expected window.
2022-12-06 19:30:13 +01:00
Markus Sauermann ada4761181 Fix that mouse-button-up event is parsed twice for drag-and-drop
Currently Input::get_singleton()->parse_input_event(mb); is
called twice for mouse-button-up events when dropping in a different
window on linuxbsd.
2022-12-05 19:31:22 +01:00
Rémi Verschelde 14f23df1a3
Merge pull request #69563 from nyanpasu64/patch-1
Fix burning CPU with udev disabled on Flatpak
2022-12-05 18:07:02 +01:00
Rémi Verschelde 5c6e2b2cac
Windows: Make MSVC debug CRT opt-in (`debug_crt=yes`)
Follow-up to #69294 which enabled it automatically for `dev_build=yes`,
but this seems to cause some issues.
Those issues should likely be debugged but until then this can stay opt-in.
2022-12-05 15:56:12 +01:00
Rémi Verschelde e82d66f23b
Merge pull request #69294 from akien-mga/windows-msvc-link-debug-runtime
Windows: Link MSVC dynamic debug CRT for debug builds
2022-12-05 10:14:33 +01:00
bruvzg 89db7f8e7c
[Linux/BSD] Fix build without fontconfig. 2022-12-05 07:56:44 +02:00
Rémi Verschelde 8912f3e4a7
Merge pull request #69578 from dsnopek/android-native-handles
Clean up DisplayServerAndroid::window_get_native_handle() with the GLES3 renderer
2022-12-05 00:31:12 +01:00
David Snopek 61cec0b023 Clean up DisplayServerAndroid::window_get_native_handle() with the GLES3 renderer 2022-12-04 13:07:51 -06:00
bruvzg ecec415988
Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts.
Add function to get system fallback font from a font name, style, text, and language code.
Implement system font support for Android.
Use system fonts as a last resort fallback.
2022-12-04 18:44:20 +02:00
nyanpasu64 0cbd1c85a9
Fix burning CPU with udev disabled on Flatpak
Fixes #67355.
2022-12-03 20:10:48 -08:00
Rémi Verschelde 015dc492de
Merge pull request #69390 from Sauermann/fix-mouse-event-position
Fix incorrect mouse event position while hovering different window
2022-12-03 22:33:12 +01:00
Riteo 2dd5a792bb Load X11 dynamically
The loaders have been generated through hpvb's dynload-wrapper, although
they had to be heavily handpatched to workaround some already reported
issues with it. I added a note to each generated file to account for
that.

As GLAD uses X11 stuff directly, I had to define the GLAD_GLX_NO_X11
macro to not let do it that, and handle myself the display loading and
screen handling part myself, which wasn't that hard but it's still
something worth saying.

I plan to improve greatly the X11 backend (including this aspect) but,
as the release isn't that far and I'm also working on the Wayland
backend, this will do for now, I hope.
2022-12-03 19:23:43 +01:00
Rémi Verschelde 7bffdca41c
Merge pull request #69380 from bruvzg/mac_max_ws
[macOS] Improve maximized and non-resizable modes handling.
2022-12-02 12:25:25 +01:00
Rémi Verschelde 7ef9947d0e
Merge pull request #68870 from dsnopek/master-webxr-input
Get WebXR fully working in Godot 4!
2022-12-02 12:24:40 +01:00
David Snopek 310bf39cd3 Get WebXR fully working in Godot 4! 2022-12-01 21:46:30 -06:00
Fredia Huya-Kouadio 2aba13e8fb Updating the minimum Android target api for proper Vulkan support 2022-11-30 11:16:59 -08:00
Markus Sauermann 79401f8dc2 Fix incorrect mouse event position while hovering different window 2022-11-30 13:39:31 +01:00
bruvzg 8cd08f8b6f
[macOS] Improve maximized and non-resizable modes handling. 2022-11-30 11:34:40 +02:00
bruvzg aa117a128e
[macOS] Fix export button incorrectly disabled when using login/app password for notarization. 2022-11-30 10:38:53 +02:00
clayjohn 9141984e7e Enable GLES3 on Android
Add necessary build flags and switch from using a
GLES2 context to a GLES3 one.

This also enables building for OpenXR

Co-authored-by: m4gr3d <fhuyakou@gmail.com>
Co-authored-by: dsnopek <dsnopek@gmail.com>
2022-11-29 14:18:24 -08:00
bruvzg 0cea664cb5
[iOS] Read document and cache path directly in the OS code, instead of passing in from main. 2022-11-29 14:58:12 +02:00
Rémi Verschelde 82e45820d9
Merge pull request #69332 from bruvzg/exact_symbols
[MSVC] Use symbols from .pdb only, to avoid incorrect names in the backtrace when symbols are missing.
2022-11-29 10:34:52 +01:00
Rémi Verschelde b7667e6a47
Merge pull request #69110 from bruvzg/con_icon2
[Windows] Optimize editor icon, use different icon for console executable.
2022-11-29 10:26:47 +01:00
bruvzg d99c32668a [MSVC] Use symbols from .pdb only, to avoid incorrect names in the backtrace when symbols are missing. 2022-11-29 11:12:54 +02:00
bruvzg 42c2c02acf [Windows] Optimize editor icon, use different icon for console executable. 2022-11-29 09:39:03 +02:00
bruvzg aaf4d7dfe1
[macOS] Fix sub-windows opening in fullscreen. 2022-11-28 14:11:21 +02:00
Rémi Verschelde cf9bb5c2c3
Windows: Link MSVC dynamic debug CRT for debug builds
Fixes #31608.
2022-11-28 12:58:17 +01:00
Rémi Verschelde be0923b1d9
Merge pull request #69277 from pkdawson/construct-joypad-first
[Windows] Fix joypad crash
2022-11-28 08:47:32 +01:00
Rémi Verschelde 23f3adb7a0
Merge pull request #67815 from Calinou/html5-improve-feature-errors
Improve feature errors in HTML5 for easier understanding
2022-11-28 08:40:39 +01:00
Rémi Verschelde 2d1bf56510
Merge pull request #68740 from bruvzg/ios_fixes
[iOS] Fix getting Unicode executable path, fix error spam on start.
2022-11-28 08:31:53 +01:00
Fredia Huya-Kouadio 7cc47613fe Add missing display server overrides
Improves the base functionality for the Android platform and helps reduce the amount of spurious error logs emitted.
2022-11-27 22:07:51 -08:00
Patrick Dawson 1aa4959381 [Windows] Fix joypad crash 2022-11-28 03:38:47 +01:00
Rémi Verschelde 2a36127e34
Android: Remove extra arch suffix now redundant with the default one
We would needlessly get file names like `*.arm64.armv8.o`.
2022-11-25 16:25:31 +01:00
Rémi Verschelde afe1c89fb5
Merge pull request #68897 from bruvzg/mac_reparent
[macOS] Dynamically attach and detach transient windows to allow them to stay on top of parent and be moved to another screen.
2022-11-21 11:44:02 +01:00
bruvzg 908bef8eee
[Export] Use image loader directly to avoid "resource as image file" errors. 2022-11-21 10:11:59 +02:00
bruvzg c2b061dec3
[macOS] Dynamically attach and detach transient windows to allow them to stay on top of parent and can be moved to another screen. 2022-11-21 10:11:14 +02:00
Markus Sauermann 567a591f87 Fix unused exitcode in macos export plugin
Fix that the exitcode is never set.
2022-11-20 22:27:23 +01:00
bruvzg ac0ed9ce67
Windows icon export improvements.
Regenerate Windows icon on export to ensure correct icon size order.
Add support for using PNG/WebP/SVG files as an icon for Windows exports.
Allow using WebP/SVG files as icon for macOS exports.
Add option to select generated icons interpolation, and set default interpolation to Lanczos.
2022-11-18 19:42:07 +02:00
Fredia Huya-Kouadio 3c75887d41 Fix parsing of the `keep_screen_on` display setting 2022-11-17 05:54:05 -08:00
Rémi Verschelde eb7c3e1ad3
Android: Fix parsing `keep_screen_on` setting
Boolean stringification changed in Godot 4.0.

Fixes #67034.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2022-11-17 14:32:42 +01:00
Rémi Verschelde 2e2a3a5f16
Merge pull request #68778 from bruvzg/ios_icons
[iOS] iOS export improvements.
2022-11-17 13:48:07 +01:00
Rémi Verschelde 921ab252e7
Merge pull request #68777 from bruvzg/mac_activ_13
[macOS] Update activation hack to work on Ventura.
2022-11-17 11:57:50 +01:00
bruvzg 7467067d23
[iOS] iOS export improvements.
Add export options to set Settings and Notification icons on export.
Automatically fill background of the app store icon instead of failing (with warning).
Update development region to use `en` instead of `English`.
2022-11-17 12:06:15 +02:00
bruvzg 153d06d79b
[macOS] Update activation hack to work on Ventura. 2022-11-17 11:14:03 +02:00
bruvzg b11d180a93 [Windows] Use case-sensitive file names for the system fonts to avoid warnings. 2022-11-17 09:39:31 +02:00
bruvzg 6bf9594cfb
[iOS] Fix getting Unicode executable path, fix "!configured" and "!classes.has(ti.inherits)" error spam on start. 2022-11-16 18:55:37 +02:00
Fredia Huya-Kouadio 5212d37040 Fix 'save & restart' logic for the Android Editor 2022-11-16 03:35:53 -08:00
Rémi Verschelde 13280f1874
X11: Don't override glxSwapInterval function pointers loaded by GLAD
Fixes #68722.

Co-authored-by: alcomposer <alex.w.mitchell@gmail.com>
2022-11-16 10:05:52 +01:00
Rémi Verschelde 5993209b26
Merge pull request #68700 from clayjohn/GLES3-vsync
Set vsync on window creation when using GLES3
2022-11-16 00:29:19 +01:00
clayjohn 58a9cfee80 Set vsync on window creation when using GLES3.
Add vsync to Windows platform
2022-11-15 14:14:21 -08:00
bruvzg 7db3822c2e
[Windows] Add icon to the console wrapper, add option to set icon for the console wrapper on export. 2022-11-15 23:47:21 +02:00
Riteo Siuga dc2919d57b Load GLX dynamically with GLAD
This is accomplished through the addition of a GLAD GLX loader in the
`thirdparty` directory.

This is another step towards a nice Wayland/X11 interoperation.
2022-11-15 13:55:30 +01:00
Rémi Verschelde a70431559b
Merge pull request #68683 from bruvzg/mvk_detect
[macOS] Automatically detect MoltenVK libs installed via homebrew and macports.
2022-11-15 11:56:47 +01:00
Rémi Verschelde 696740fe38
Merge pull request #68680 from bruvzg/fc_no_font_sub
[fontconfig] Reject font substitutes if non-alias name was used.
2022-11-15 11:56:31 +01:00
Rémi Verschelde dbf6ff0cb6
Merge pull request #68372 from Riteo/glad2
Regenerate GL loader code with GLAD 2
2022-11-15 11:56:16 +01:00
bruvzg 00d3ceb870
[macOS] Automatically detect MoltenVK libs installed via homebrew and macports. 2022-11-15 11:59:53 +02:00
bruvzg 40832cc670
[fontconfig] Reject font substitutes if non-alias name was used. 2022-11-15 11:17:44 +02:00
Rémi Verschelde 98e0d59952
Merge pull request #68504 from dzil123/cache_system_dir_xdg2
Cache OS_LinuxBSD::get_system_dir
2022-11-15 00:18:09 +01:00
Rémi Verschelde 80dbcfd995
Merge pull request #68657 from Sauermann/fix-redundant-initialization
Remove redundant non-trivial Variant types initializations
2022-11-14 23:23:54 +01:00
Riteo f6397bffb1 Regenerate GL loader code with GLAD 2
GLAD 1 creates unusable loaders for EGL, while the newly released GLAD 2
does not, so for consistency I thought that it would be a good idea to
uniform things beforehand. While it had some API changes some renames
were all that was needed and everything works like before, at least on
the Wayland branch.

I've kept the structure identical, although this new generator has quite
a few hefty features, such as a single header mode.

I've also added GLAD to `thirdparty/README.md`, but I haven't specified
that in the commit title because it's a very small "fix".
2022-11-14 21:48:01 +01:00
Hugo Locurcio efe3220b2e
Fix periods in editor strings and messages
- Ensure all strings with ellipsis end with 3 periods instead of 2.
- Fix extraneous period in "Error calling from signal '...' to callable"
  messages.
2022-11-14 19:36:36 +01:00
Markus Sauermann 3b14f0334c Remove redundant Variant-types initializations 2022-11-14 19:35:19 +01:00
Rémi Verschelde 315c64282b
Fix misc formatting issues
Somehow I missed the failing CI report from trailing whitespace.

Fixed a couple typos found by codespell while at it, and misc
trailing semicolons in one of the files.
2022-11-14 19:00:48 +01:00
Rémi Verschelde 1b3ed1b3ba
Merge pull request #68631 from pkdawson/fix-icondir-buffer-overflow
Fix ICONDIR buffer overflow
2022-11-14 11:08:22 +01:00
bruvzg 964d8b2d00
[macOS] Add exclusive fullscreen mode with Dock and Menu disabled. 2022-11-14 07:57:22 +02:00
Patrick Dawson ffa39db847 Fix ICONDIR buffer overflow 2022-11-14 00:47:14 +01:00
Rémi Verschelde b05e1e7d69
Merge pull request #68608 from dsnopek/gl-manager-nullptr
Added missing null checks for gl_manager in MacOS and Windows display servers
2022-11-13 15:52:42 +01:00
David Snopek 4c8409c0fe Added missing null checks for gl_manager in MacOS and Windows display servers 2022-11-13 07:06:26 -06:00
dzil123 d22ab7c85b Cache OS_LinuxBSD::get_system_dir(SYSTEM_DIR_DESKTOP) 2022-11-12 22:38:32 -08:00
Markus Sauermann ed5c9a07d7 Fix gl_manager nullptr crash
Add a nullptr-check, before accessing gl_manager
2022-11-13 00:48:45 +01:00
Rémi Verschelde 6ec698059a
Merge pull request #68482 from Sauermann/fix-mouse-enter-event
Fix unsent WINDOW_EVENT_MOUSE_ENTER event on mouse_mode-change
2022-11-11 10:54:30 +01:00
Markus Sauermann 52d75c9b35 Fix unsent WINDOW_EVENT_MOUSE_ENTER event on mouse_mode-change
coauthor: @bruvzg

On linuxbsd and macOS the WINDOW_EVENT_MOUSE_ENTER was not sent,
when the mouse became visible again after a mouse_mode-change.
2022-11-11 07:52:16 +01:00
Fredia Huya-Kouadio 151233b702 Upgrade Android gradle plugin to version 7.2.1 2022-11-10 16:35:50 -08:00
Rémi Verschelde 29de658c29
Merge pull request #68345 from Abdul-AZ/master
Fix static object destructors being called on gpu selection with X11
2022-11-09 09:16:04 +01:00
David Snopek 23603e409c Add support for OpenGL to OpenXR 2022-11-08 18:47:11 -06:00
TechnoPorg df4597c9ab Improve support for 64-bit types on Android.
This update mappings in the JNI functions to better support 64-bit integers, and adds support for 64-bit float arrays.
The code is mostly reused from 32-bit types.
2022-11-08 07:27:45 -07:00
Zae bc9bf00e4a Fix viewport doesn't auto-resize on Web. 2022-11-08 18:33:24 +08:00
Rémi Verschelde 70bde0d762
Merge pull request #68362 from bruvzg/android_gde
[Android] Fix GDExtension export and loading.
2022-11-08 10:50:30 +01:00
Rémi Verschelde ddfd6cfeaa
Merge pull request #67682 from m4gr3d/misc_fixes_main
Small set of fixes to the input logic
2022-11-08 10:49:18 +01:00
bruvzg 6033668bed
[Android] Fix GDExtension export and loading. 2022-11-08 09:42:16 +02:00
kobewi d9f066d5fa Remove duplicate project settings definitions 2022-11-08 01:29:39 +01:00
Fredia Huya-Kouadio 5f4a3e57de Small set of fixes to the input logic 2022-11-07 08:57:08 -08:00
Abdulrahman Al Zeidi 5860f81c18 Fix static object destructors being called on gpu selection with X11 2022-11-07 12:08:52 +00:00
Rémi Verschelde 930a94bfc4
Merge pull request #68287 from HolonProduction/android_keys
Fix wrong android key mapping.
2022-11-06 16:05:07 +01:00
Fabio Alessandrelli 3ff7964145 [Web] Force WebGL2 when supported. 2022-11-05 14:06:09 +01:00
Fabio Alessandrelli cece83fdf2 [Web] Improve Godot shutdown and cleanup. 2022-11-05 14:06:09 +01:00
HolonProduction a3f0dc5a83 Fix wrong android key mapping.
Fixes the wrong mapping of `Key::HOME`. Androids `KEYCODE_HOME` is in fact the hardware home button the right mapping is `KEYCODE_MOVE_HOME`.

Also adds mappings to keys that were not present before.
2022-11-05 13:54:44 +01:00
Rémi Verschelde 191c8ed12f
Merge pull request #67434 from bruvzg/win_wrapper
Add console wrapper app to handle console i/o redirection on Windows.
2022-11-04 10:49:37 +01:00
Rémi Verschelde 879aac9db4
Merge pull request #67695 from Sauermann/fix-filedrop-space
Do not strip spaces at the end of file names of dropped files
2022-11-03 12:08:08 +01:00
Rémi Verschelde 90d290f5f5
Merge pull request #67820 from Sauermann/fix-popup-closing-on-mousemove
Fix unwanted popup closing by mouse-move while holding mouse-button down
2022-11-03 12:07:59 +01:00
Rémi Verschelde a68ea12c5b
Merge pull request #68133 from Sauermann/fix-mouse-dropping
Fix mouseleave event after drag and drop in different windows
2022-11-03 12:07:52 +01:00
Markus Sauermann 5d0aade322 Do not strip spaces at the end of file names of dropped files on linuxbsd 2022-11-03 11:38:42 +01:00
Markus Sauermann 8fb4b5998e Fix unwanted popup closing by mouse-move while holding mouse-button 2022-11-03 11:36:58 +01:00
Rémi Verschelde 889868cbbc
Merge pull request #68182 from Riteo/x11-folder
linuxbsd: move all X11 stuff in its own directory
2022-11-03 00:32:30 +01:00
Riteo 593c571d6a linuxbsd: move all X11 stuff in its own directory
This allows implementing `DisplayServer`s like Wayland without making a
mess in the source tree.
2022-11-02 20:48:46 +01:00
Rémi Verschelde f7c611ab71
Style: Misc docs and comment style and language fixes
- Removed empty paragraphs in XML.
- Consistently use bold style for "Example:", on a new line.
- Fix usage of `[code]` when hyperlinks could be used (`[member]`, `[constant]`).
- Fix invalid usage of backticks for inline code in BBCode.
- Fix some American/British English spelling inconsistencies.
- Other minor fixes spotted along the way, including typo fixes with codespell.
- Don't specify `@GlobalScope` for `enum` and `constant`.
2022-11-02 19:01:18 +01:00
Markus Sauermann 9cea653457 Fix mouseleave event after drag and drop in different Windows
When dropping in a different window, it is necessary to start tracking
the WM_MOUSELEAVE event again.
2022-11-01 18:58:46 +01:00
bruvzg 060d62e0dc
Load and use system emoji font in the editor. 2022-11-01 11:04:58 +02:00
Rémi Verschelde ec3c3afeaf
Merge pull request #68099 from Sauermann/fix-popup-mouse-offset
Fix mouse offset for unfocused popups
2022-11-01 08:20:04 +01:00
Markus Sauermann 88feacdad5 Fix mouse offset for unfocused popups
On Windows, the mouse was offset, when unfocused popups were used,
like the Editor menu.
2022-11-01 00:04:14 +01:00
Rémi Verschelde 2bd9a6fe8d
Merge pull request #68044 from ztc0611/ios-promotion
Add ProMotion/High Refresh Rate Support to iOS Exports
2022-10-31 23:03:30 +01:00
Zach Coleman 601c42be66 Add ProMotion Support to iOS Exports 2022-10-31 09:33:39 -04:00
Rémi Verschelde 9188bc7341
Merge pull request #67879 from bruvzg/fix_no_vlk
Fix build with Vulkan disabled and no Vulkan headers installed.
2022-10-31 14:29:05 +01:00
bruvzg 9a33c97c2a
Add console wrapper app to handle console i/o redirection on Windows. 2022-10-31 14:37:49 +02:00
Rémi Verschelde 5947f22be9
Merge pull request #67578 from KoBeWi/GEDITOR
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
Rémi Verschelde 90e337e081
CI: Update minimatch npm dependency to silence security report
No risk for us as this is only used for static checks on CI.
2022-10-31 11:52:52 +01:00
Rémi Verschelde 638dfe2528
Merge pull request #67581 from aaronfranke/android-float
Use proper types for converting Java float/double arrays in Android code
2022-10-31 10:36:11 +01:00
Clay John 04ac91f786
Merge pull request #67790 from kdada/fix-flash-window
Make creating window do not flicker when specify custom position
2022-10-28 13:02:58 -07:00
Clay John 282e50ac88
Merge pull request #67903 from Sauermann/fix-startup-windows-mouse-exit-event
Fix differences between Windows and linuxbsd Display Server
2022-10-28 11:20:36 -07:00
Max Hilbrunner 028db9f2b5
Merge pull request #67914 from Calinou/displayserverx11-no-native-icon
Fix `DisplayServer.has_feature()` claiming X11 has native icon support
2022-10-28 12:46:57 +02:00
Markus Sauermann 4bd601d82a Fix differences between Windows and linuxbsd Display Server
Fix that Windows receive WINDOW_EVENT_MOUSE_EXIT on startup.

When moving the mouse cursor from one window to a different one, make sure that the first window receives the WINDOW_EVENT_MOUSE_EXIT event before the second window receives the WINDOW_EVENT_MOUSE_ENTER event.

Send Mouse-Move events also for Windows, that are currently not focused.

For determining the currently hovered window, consider not just the currently focused window, but also other windows.

Send mouse move events to focused window instead of hovered window.
2022-10-28 09:32:25 +02:00
zCubed3 e7091d07cd
Fix OS.get_video_adapter_driver_info crash 2022-10-27 15:45:21 -07:00
Clay John 9ffa86357d
Merge pull request #67421 from Sauermann/fix-failure-exit-code
Fix Godot exiting with unexpected failure code
2022-10-27 11:58:50 -07:00
Hugo Locurcio 82a575dff4
Fix `DisplayServer.has_feature()` claiming X11 has native icon support
Native icons are not supported by the X11 DisplayServer, unlike
Windows and macOS.
2022-10-26 20:39:31 +02:00
bruvzg 4dd8f68120
Fix build with Vulkan disabled and no Vulkan headers installed. 2022-10-26 08:55:05 +03:00
Wei Guo d7e39e313b Make window creation with custom position do not flash 2022-10-24 13:50:25 +08:00
Clay John 753a182797
Merge pull request #65334 from dsnopek/opengl-multiview
[opengl] Add multiview to the opengl3 driver
2022-10-23 17:00:01 -07:00
Hugo Locurcio 8fcd54d13e
Improve feature errors in HTML5 for easier understanding 2022-10-23 19:13:42 +02:00
Fredia Huya-Kouadio 13e4770b97 Add double_tap attribute to InputEventScreenTouch
This provides parity with the `InputEventMouseButton` allowing for proper conversion between the two events.
2022-10-22 07:30:46 -07:00
David Snopek 398ee08375 Add multiview to the opengl3 driver 2022-10-21 21:00:32 -05:00
Clay John 021f524dfd
Merge pull request #67546 from clayjohn/DS-msg
Update the DisplayServer video driver error message to be more accurate and friendly
2022-10-21 16:57:35 -07:00
nikitalita 34a60e2c62 improve get_apksigner_path() robustness 2022-10-20 04:20:34 -07:00
Max Hilbrunner 21c90b4c7d
Merge pull request #67564 from bruvzg/macos_wide_alert
[macOS] Fit OS::alert to the text width for better readability.
2022-10-19 21:52:40 +02:00
Fredia Huya-Kouadio 20d1c882cd Delete Android godot-lib with the old naming scheme
Update the `clean` task configuration: running `gradlew clean` will now properly delete the generated build artifacts
2022-10-18 20:36:40 -07:00
clayjohn c4ba1565d0 Update the DisplayServer video driver error message
to be more accurate and friendly
2022-10-18 10:15:11 -07:00
kobewi e48c5daddf Unify usage of GLOBAL/EDITOR_GET 2022-10-18 19:01:48 +02:00
Aaron Franke 01bec83cb6
Use proper types for converting Java float/double arrays in Android code 2022-10-18 08:26:04 -05:00
bruvzg a3cb6163cc
[macOS] Fit OS::alert to the text width for better readability. 2022-10-18 12:11:39 +03:00
Rémi Verschelde b545d55df9 Merge pull request #67539 from bruvzg/check_ctx
Check if Vulkan context for the window exists before resizing it to avoid unnecessary error messages.
2022-10-17 17:32:07 +02:00
Rémi Verschelde 235c5c60f8 Merge pull request #67322 from ztc0611/add-ios-ui-options
Add iOS UI Options
2022-10-17 17:30:55 +02:00
Fredia Huya-Kouadio 64e8d8cd1f
Merge pull request #67259 from lucasnlm/optimiza-android-export
Optimize Android export process
2022-10-17 08:22:37 -07:00
bruvzg 667a052ed8 Check if Vulkan context for the window exists before resizing it to avoid unnecessary error messages. 2022-10-17 17:26:57 +03:00
Markus Sauermann 7d59a14db8 Fix Godot exiting with unexpected failure code
The exit code is initialized as EXIT_FAILURE to indicate failures during
startup. Closing the Game window via the window manager does not
change the exit code, so the program exists with EXIT_FAILURE.

This PR set the exit code to EXIT_SUCCESS when initialization was
successful just before starting the main loop.
2022-10-15 03:17:40 +02:00
kobewi 072f6feaba Make some Image methods static 2022-10-14 14:34:15 +02:00
Fabio Alessandrelli 40d60ca6ae [WebSocket] Fix debugger implementation.
Register module during core initialization so the remote debugger can
properly handle the "wss://" protocol.
2022-10-13 17:25:29 +02:00
Rémi Verschelde fd4572cc45 Merge pull request #67340 from bruvzg/mac_export_min
Fix macOS export plugin build without regex module.
2022-10-13 09:05:42 +02:00
Rémi Verschelde 40847f1436 Merge pull request #67318 from bruvzg/more_gcc_warn
[Windows] Fix more GCC MinGW warnings.
2022-10-13 09:04:06 +02:00
bruvzg dac2047529
Fix macOS export plugin build without regex module. 2022-10-13 08:54:50 +03:00
Rémi Verschelde 42ebc4ef65
Merge pull request #67325 from Faless/web/4.x_scons_serve
[Web] Add the "serve" and "run" scons targets.
2022-10-12 22:56:10 +02:00
Rémi Verschelde 261b9da77f
Merge pull request #67281 from Nidjo123/x11-window-resize
Keep rendering context window size in sync when resizing
2022-10-12 22:53:49 +02:00
Rémi Verschelde f2248969db
Merge pull request #66952 from bruvzg/macos_net_export
Fix macOS .NET export.
2022-10-12 22:52:59 +02:00
Fabio Alessandrelli a06602363c [Web] Add the "serve" and "run" scons targets.
You can now run the test HTTP server by calling:

scons p=web serve

If you also wish to run the browser, call instead:

scons p=web run

The default listen port is 8060, but can be overriden via the env
variable GODOT_WEB_TEST_PORT which must be a valid integer.
2022-10-12 22:29:35 +02:00
Zach Coleman d78051c92c Add iOS UI Options 2022-10-12 15:22:54 -04:00
bruvzg ad4cc8682b
[Windows] Fix GCC MinGW warnings. 2022-10-12 20:19:17 +03:00
Rémi Verschelde 06dc4648bf Merge pull request #67252 from zaevi/web_fix_export_file_locked
[Web] Fix file locked issue when exporting to Web.
2022-10-12 14:44:32 +02:00
Rémi Verschelde ced736e584 Merge pull request #67272 from Riteo/fix-auto-execinfo
Actually set the execinfo flag on non-glibc systems
2022-10-12 08:56:03 +02:00
Rémi Verschelde fb9b4a1dd0 Merge pull request #67258 from Faless/web/4.x_eslint_html
[Web] Add auto-formatting to HTML files.
2022-10-12 08:54:52 +02:00
Nikola Bunjevac 882d40fa11 Keep rendering context window size in sync when resizing
On X11 we rely on ConfigureNotify event to update rendering context
window size, but we don't get such event when resizing
programmatically, only when done "manually" by resizing the window
etc.
2022-10-11 23:27:21 +02:00
Riteo a3b5353892 Actually set the execinfo flag on non-glibc systems 2022-10-11 21:45:29 +02:00
Rémi Verschelde 736a2df437
Merge pull request #67244 from RandomShaper/split_render_further_2
Polish rendering driver refactor further (take 2)
2022-10-11 21:08:42 +02:00
Fabio Alessandrelli 9a653ebeac [Web] Add auto-formatting to HTML files.
Uses html-eslint for HTML file and eslint-plugin-html for inline
JavaScript.

Use HTML5 (not XHTML), remove CDATA and trailing slashes for self
closing tags.

Add format checks to CI.
2022-10-11 19:42:12 +02:00
Pedro J. Estébanez f82deaa5b3 Polish rendering driver refactor further (take 2) 2022-10-11 19:06:55 +02:00
Lucas Lima 975c588cf9 Revert change 2022-10-11 11:39:22 -03:00
Lucas Lima 166696659e Optimize Android export process 2022-10-11 11:35:39 -03:00
Zae 55a491114a Fix file locked issue when exporting to Web. 2022-10-11 20:49:51 +08:00
Rémi Verschelde 5aadc618b6 Merge pull request #66102 from MJacred/feature/getvideoadapterdriverinfo
Fetch video adapter driver name and version from OS
2022-10-11 13:59:53 +02:00
MJacred de768afbdc Fetch video adapter driver name and version from OS on Linux/*BSD and Windows 2022-10-11 12:39:41 +02:00
Rémi Verschelde 6ad1a635ee Merge pull request #67242 from akien-mga/cleanup-unused-defines
Cleanup unused defines in platform code
2022-10-11 12:34:10 +02:00
Rémi Verschelde a92c564a02 Cleanup unused defines in platform code 2022-10-11 11:52:41 +02:00
Pedro J. Estébanez e14c5186e2 Fix newlines not honored in Windows console
This is relevant when building with `windows_subsystem=console`.
2022-10-11 10:09:50 +02:00
Micky fe56c1ff75 Use `JSON::stringify` where possible 2022-10-11 00:27:23 +02:00
Rémi Verschelde 28f642097a Merge pull request #67183 from akien-mga/gcc-warnings-cleanup
SCons: Cleanup GCC warnings configuration
2022-10-10 17:42:36 +02:00
Rémi Verschelde 3c413cf008 Merge pull request #67200 from bruvzg/fix_win_gcc_warn
[Windows] Fix GCC MinGW warnings.
2022-10-10 17:42:19 +02:00
Fabio Alessandrelli 15a8e17b87
Merge pull request #67184 from zaevi/web_fix_GodotJSWrapper_object_type
[Web] Fix `Object` type in GodotJSWrapper.
2022-10-10 17:41:10 +02:00
bruvzg 379df32a98
[Windows] Fix GCC MinGW warnings. 2022-10-10 17:43:49 +03:00
Rémi Verschelde 8017827144 SCons: Re-enable treating `#warning` as error with `werror`
Replace all TODO uses of `#warning` by proper TODO comments, and will open
matching bug reports to keep track of them.

We don't have a great track record fixing TODOs, but I'd wager we're even
worse for fixing these "TODO #warning" so we should prohibit this usage.
2022-10-10 16:12:26 +02:00
Zae bf61af6ae9 Fix Object type in GodotJSWrapper. 2022-10-10 19:28:43 +08:00
bruvzg 73430f292b
[macOS] Fix window button position and title bar size when editor scale do not match OS UI scale. 2022-10-10 10:32:41 +03:00
Amor Iqbal 43264bff23 Changed the conditions for firing 'No such file or directory' error 2022-10-10 08:28:04 +05:30
Jason Knight c2d7f7fb4c Change auto to default in cursor css settings. 2022-10-07 10:53:49 -06:00
Rémi Verschelde b28c39d2f5 Merge pull request #67021 from RandomShaper/window_create_ret_madness
Harmonize return values of `window_create()` in rendering drivers
2022-10-07 14:22:53 +02:00
bruvzg 6daf4c6593
[.NET Export] Improve .NET export process.
[macOS export] Fix incorrect file placement, search paths and architecture detection.
[macOS export] Automatically detect executable files and set +x flag.
[macOS export] Automatically apply "Disable Library Validation" entitlements when required.
[macOS export] Remove old Mono export code.
Fix folder tree creation for shared objects export.
Add arch suffix to the exported .NET "data" folder name.
Remove old Mono code from .NET "data" folder lookup.
2022-10-07 13:33:06 +03:00
Pedro J. Estébanez e821e9d2a2 Harmonize return values of window_create() in rendering drivers 2022-10-07 11:31:54 +02:00
bruvzg 0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
Rémi Verschelde 6c58327c69 Merge pull request #66965 from bruvzg/win_llvm
[Windows] Fix LLVM MinGW build.
2022-10-06 08:57:29 +02:00
Rémi Verschelde c2c9a582da Merge pull request #64815 from RandomShaper/default_cpu_count
Improve default `OS`'s CPU count getter
2022-10-06 08:55:51 +02:00
bruvzg 6afb2d0225
[Windows] Fix LLVM MinGW build. 2022-10-06 09:30:25 +03:00
Fredia Huya-Kouadio ea9bb98f26
Merge pull request #66946 from m4gr3d/cursor_shape_logic_cleanup_main
Cleanup of the Android cursor shape logic
2022-10-05 13:07:34 -07:00
Fredia Huya-Kouadio ffe0e3970f Cleanup of the Android cursor shape logic 2022-10-05 11:57:57 -07:00
Pedro J. Estébanez 6bf02c0162 Keep a single, portable implementation of `OS::get_processor_count()` 2022-10-05 20:10:47 +02:00
Fredia Huya-Kouadio 38113acf0d
Merge pull request #66941 from winterpixelgames/bugfix-android-null-input-event
Fix null in android keyboard handling.
2022-10-05 10:51:58 -07:00
Jason Knight 88df3e8d53 Fix null in android keyboard handling. 2022-10-05 11:17:02 -06:00
Fredia Huya-Kouadio 3178b042b3 Fix the gradle build configuration for the Android platform following https://github.com/godotengine/godot/pull/66242 2022-10-05 08:41:48 -07:00
Rémi Verschelde 5b6ccf2fd2 Merge pull request #66720 from qarmin/unintialized_memory
Remove usage of unitialized variables
2022-10-05 11:42:47 +02:00
Rémi Verschelde 33f4c5282f Merge pull request #64819 from RandomShaper/enhance_thread_funcs
Enhance portability of threading
2022-10-05 11:42:35 +02:00
Rémi Verschelde 4bf3199000 Merge pull request #64886 from Calinou/web-editor-add-local-web-server-2
Replace local web server setup for web editor with a Python-based solution
2022-10-05 08:36:19 +02:00
Rémi Verschelde 2c94470dd1 Merge pull request #63983 from Calinou/scons-linux-execinfo-musl
Automatically use execinfo for crash handler on *BSD and musl-based Linux
2022-10-05 08:29:59 +02:00
Hugo Locurcio 8e04bffbcf
Automatically use execinfo for crash handler on *BSD and musl-based Linux
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-10-04 19:40:19 +02:00
Hugo Locurcio 1be1b15a57
Replace local web server setup for web editor with a Python-based solution
This makes it easier to set up, as you always have Python installed
when building Godot. On the other hand, you don't always have Node.js
+ npm installed (and you may not want to spend time running `npm install`).

Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2022-10-04 19:39:27 +02:00
Pedro J. Estébanez 958ecf55fe Enhance portability of threading 2022-10-04 11:43:28 +02:00
Rémi Verschelde 4eaa59d0ed Merge pull request #66773 from MladoniSzabi/numpad-no-numlock-bug-linux
Remapped the numpad keys on linux when numlock is off
2022-10-04 11:29:01 +02:00
Rémi Verschelde 68765b8831 Merge pull request #66274 from Calinou/engine-rename-max-fps
Rename `Engine.target_fps` and associated project setting to `max_fps`
2022-10-04 11:19:56 +02:00
Rémi Verschelde b7c68b343d Merge pull request #66832 from bruvzg/cmd_p_fix
[macOS] Fix ⌘ + . + other modifier triggering twice.
2022-10-04 11:19:41 +02:00
Rémi Verschelde 02e9e2d3c0 Merge pull request #66559 from zaevi/fix_ScrollContainer_touch_scroll
Fix ScrollContainer touch-scrolling not working.
2022-10-04 10:30:31 +02:00
Rémi Verschelde 9928cdc2e7 Merge pull request #66807 from akien-mga/core-unix-remove-NO_FCNTL-and-NO_STATVFS
Unix: Remove now unnecessary I/O defines, cleanup
2022-10-04 10:22:29 +02:00
Rémi Verschelde cd7f172cf8 Merge pull request #66804 from akien-mga/core-remove-NO_SAFE_CAST
Remove unsupported `NO_SAFE_CAST`/`-fno-rtti` from Android build
2022-10-04 10:22:24 +02:00
Hugo Locurcio 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
bruvzg bfbbe9c1d0
[macOS] Fix ⌘ + . + other modifier triggering twice. 2022-10-03 20:44:50 +03:00
MladoniSzabi cc0fd7e783 Remapped the numpad keys on linux when numlock is off
On Linux, when using the numpad while numlock is off doesn't do
anything. Made the numpad keys map to the correct control keys.

Resolves: #54814.
2022-10-03 12:53:42 +01:00
Rémi Verschelde f501e4f665 Unix: Remove now unnecessary I/O defines, cleanup
- `LIBC_FILEIO_ENABLED` wasn't defined anywhere, even in _other platforms_.
- `NO_NETWORK` is also never defined. It probably isn't enough anyway to
  disable network APIs in the current codebase.
- `UNIX_SOCKET_UNAVAILABLE` is never defined in this code but used by some
  other platforms, clarify that.
- `NO_STATVFS` can be removed as Android supports it since API level 19,
  which is our current min SDK level. It's also only used for
  `DirAccessUnix::get_space_left()` which is anyway overridden by
  `DirAccessJAndroid::get_space_left()` so it shouldn't make a difference.
  * Fixed documentation for `DirAccess.get_space_left()`.
- `NO_FCNTL` is likely also a remnant of early Android days, in current NDK
  r23 it seems to be available. Also cleaned up unused `fcntl.h` includes.
- `NO_ALLOCA` is never defined, and we use alloca in many places now.
2022-10-03 12:33:41 +02:00
Rémi Verschelde 54418ea659 Remove NO_THREADS fallback code, Godot 4 requires thread support
This also removes `OS::can_use_threads` from the public API since it's always
true.
2022-10-03 11:23:26 +02:00
Rémi Verschelde 82b87d7a17 Remove unsupported `NO_SAFE_CAST`/`-fno-rtti` from Android build
Android was the last platform to still attempt to disable RTTI (for binary
size), but both the Android editor and now the ICU library used by templates
need RTTI.

There could still be the possibility to support this for non-ICU template
builds (i.e. without the TextServerAdvanced module), but since this isn't one
of the build configurations we test regularly it's pretty risky to keep this
option only for that specific use case. And our code is already littered with
`dynamic_cast`s which weren't guarded with `!defined(NO_SAFE_CAST)`.
2022-10-03 11:18:31 +02:00
Matthew Munro (mam552) 0f5b448a9c Fix inconsistent window state on X11.
Fixes #66413.
DisplayServerX11 tracks some internal state about whether the window is
fullscreen, minimized, maximized or none. This commit queries the
display server when the window changes, so that this internal state can
be correctly updated.
2022-10-01 16:01:28 -06:00
Rafał Mikrut 2233624152 Remove usage of unitialized variables 2022-10-01 21:09:22 +02:00
Rémi Verschelde ef8834a642 Merge pull request #64784 from yedpodtrzitko/yed/ci-add-mypy
ci: add Python static analysis check via mypy
2022-09-30 17:44:39 +02:00
Rémi Verschelde 166df0896c Fix typos with codespell
Using codespell 2.3-dev from current git.

And fix typo in `methods.py` for `vsproj=yes` option (still won't work
though).
2022-09-30 14:23:36 +02:00
Jiri Suchan c5bd2f9dce ci: add Python static analysis check via mypy 2022-09-30 19:03:17 +07:00
Rémi Verschelde f47979f087
Merge pull request #66242 from akien-mga/scons-unify-tools-target 2022-09-30 12:28:50 +02:00
Rémi Verschelde e5857bd6c7 Merge pull request #66548 from akien-mga/msvc-warnings-c4701-c4703
Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used
2022-09-28 20:47:50 +02:00
Zae 186ca020b3 Fix ScrollContainer touch-scrolling not working. 2022-09-29 01:47:03 +08:00
Rémi Verschelde 85fe6ecc32 Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used 2022-09-28 17:05:34 +02:00
Rémi Verschelde 0e53dd642c Fix MSVC warning C4706: assignment within conditional expression
Part of #66537.
2022-09-28 16:05:07 +02:00
bruvzg 4421378089
[Windows] Ignore excessive wintab mouse move events. 2022-09-28 10:12:04 +03:00
Rémi Verschelde 39facb35a0 SCons: Unify tools/target build type configuration
Implements https://github.com/godotengine/godot-proposals/issues/3371.

New `target` presets
====================

The `tools` option is removed and `target` changes to use three new presets,
which match the builds users are familiar with. These targets control the
default optimization level and enable editor-specific and debugging code:

- `editor`: Replaces `tools=yes target=release_debug`.
  * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_debug`: Replaces `tools=no target=release_debug`.
  * Defines: `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_release`: Replaces `tools=no target=release`.
  * Defines: `-O3`/`/O2`

New `dev_build` option
======================

The previous `target=debug` is now replaced by a separate `dev_build=yes`
option, which can be used in combination with either of the three targets,
and changes the following:

- `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`),
  enables generating debug symbols, does not define `NDEBUG` so `assert()`
  works in thirdparty libraries, adds a `.dev` suffix to the binary name.

Note: Unlike previously, `dev_build` defaults to off so that users who
compile Godot from source get an optimized and small build by default.
Engine contributors should now set `dev_build=yes` in their build scripts or
IDE configuration manually.

Changed binary names
====================

The name of generated binaries and object files are changed too, to follow
this format:

`godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]`

For example:
- `godot.linuxbsd.editor.dev.arm64`
- `godot.windows.template_release.double.x86_64.mono.exe`

Be sure to update your links/scripts/IDE config accordingly.

More flexible `optimize` and `debug_symbols` options
====================================================

The optimization level and whether to generate debug symbols can be further
specified with the `optimize` and `debug_symbols` options. So the default
values listed above for the various `target` and `dev_build` combinations
are indicative and can be replaced when compiling, e.g.:

`scons p=linuxbsd target=template_debug dev_build=yes optimize=debug`
will make a "debug" export template with dev-only code enabled, `-Og`
optimization level for GCC/Clang, and debug symbols. Perfect for debugging
complex crashes at runtime in an exported project.
2022-09-26 16:31:46 +02:00
Rémi Verschelde 49fcf4ffad Style: Cleanup header guards for consistency
Fix file names for {Static,Lightmap}RaycasterEmbree.
2022-09-26 13:51:17 +02:00
Rémi Verschelde 67f700d726
Merge pull request #66377 from bruvzg/macos_menu_cb_deferred
[macOS] Process menu callback after event processing step to avoid event queue corruption.
2022-09-25 08:38:10 +02:00
Rémi Verschelde 39be6695d1
Merge pull request #66295 from bruvzg/win_fix_wm_char_keysym
[Windows] Fix WM_CHAR processing code using Unicode char instead of Virtual key.
2022-09-24 22:59:44 +02:00
bruvzg b66931946b
[macOS] Process menu callback after event processing step to avoid event queue corruption. 2022-09-24 23:57:24 +03:00
Rémi Verschelde 26e9145c26 SCons: Cleanup `DEBUG`, `_DEBUG` and `NDEBUG` defines
- `_DEBUG` is MSVC specific so it didn't make much sense to define for
  Android and iOS builds.
- iOS was the only platform to define `DEBUG`. We don't use it anywhere
  outside thirdparty code, which we usually don't intend to debug, so it
  seems better to be consistent with other platforms.
- Consistently define `NDEBUG` to disable assert behavior in both `release`
  and `release_debug` targets. This used to be set for `release` for all
  platforms, and `release_debug` for Android and iOS only.
- Due to the above, I removed the only use we made of `assert()` in Godot
  code, which was only implemented for Unix anyway, should have been
  `DEV_ENABLED`, and is in PoolAllocator which we don't actually use.
- The denoise and recast modules keep defining `NDEBUG` even for the `debug`
  target as we don't want OIDN and Embree asserting all over the place.
2022-09-23 15:21:26 +02:00
Rémi Verschelde c5c3d13dc0 SCons: Remove redundant `-fomit-frame-pointer` and `-ftree-vectorize`
- `-fomit-frame-pointer` is included automatically by both GCC and
  Clang in `-O1` and above.
- `-ftree-vectorize` is included automatically by GCC in `-O2` and
  beyond, and seems always enabled by Clang.

Closes #66296. See that issue for a detailed investigation.
2022-09-23 13:56:16 +02:00
bruvzg 54adfb6dfd [Windows] Fix WM_CHAR processing code using Unicode char instead of Virtual key. 2022-09-23 14:16:16 +03:00
bruvzg 0dab11afa4
[macOS extend-to-title] Add scene/project name to the editor title, fix incorrect window button position/order when system primary language is RTL. 2022-09-22 23:09:56 +03:00
Rémi Verschelde 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
bruvzg cdfa50dbe9
[macOS] Improve "extended to title" transition to / from fullscreen. 2022-09-21 11:21:48 +03:00
bruvzg 0ed4cc6287
[macOS] Add an option to align window buttons in "extend to title" mode. 2022-09-20 12:55:59 +03:00
Rémi Verschelde aa553f4030 Merge pull request #65745 from akien-mga/scons-production-lto-earlier
Refactor handling of `production` flag and per-platform LTO defaults
2022-09-20 09:45:33 +02:00
Rémi Verschelde 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
clayjohn 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
Rémi Verschelde 35a15e6191 SCons: Refactor handling of `production` flag and per-platform LTO defaults
Fixup to #63288.
See #65583 for the bug report.

Co-authored-by: Cyberrebell <chainsaw75@web.de>
2022-09-19 18:11:29 +02:00
bruvzg d104a4cdbd
Add missing initial window flags and window mode to the project settings. 2022-09-19 12:30:10 +03:00
kobewi 9f2dc68279 Replace File/Directory with FileAccess/DirAccess 2022-09-19 11:03:31 +02:00
Rémi Verschelde 04082597f9 Merge pull request #65975 from Faless/web/4.x_features_detection
[Web] Add feature detection helpers to JS Engine class.
2022-09-18 00:43:13 +02:00
Rémi Verschelde d0d22bfa5e Merge pull request #65331 from derammo/derammo_natvis_3
Add more data structures to Natvis for Visual Studio
2022-09-18 00:43:06 +02:00
Fabio Alessandrelli 6bbde346ab [Web] Add feature detection helpers to JS Engine class. 2022-09-17 11:21:17 +02:00
MJacred ac9786c525 Add get_distribution_name() and get_version() to OS
supports: LinuxBSD, Windows, macOS, iOS, Android, UWP

Co-authored-by: bruvzg
2022-09-16 11:17:36 +02:00
Rémi Verschelde d79040e7eb Merge pull request #65496 from MinusKube/popup-capture-mouse-bug
Fix MOUSE_MODE_CAPTURED not working correctly with popups
2022-09-16 09:23:40 +02:00
bruvzg 89c68bb22d
[macOS] Remove tabs for "Quit" menu item. 2022-09-15 22:27:27 +03:00
bruvzg 734b89124e
[macOS] Fix redraw lag at the edge of the resizing window. 2022-09-15 17:08:12 +03:00
Rémi Verschelde 5ff8e4ee67 Merge pull request #65133 from bruvzg/win_cursor
[Windows] Simplify cursor handling and add support for fully transparent cursors.
2022-09-14 17:42:53 +02:00
bruvzg d46bc8f4ac
[macOS, 4.0] Fix unresponsive redraw during live resizing. 2022-09-14 09:59:00 +03:00
Fredia Huya-Kouadio 9d5e48f873 Disable menus and functionality that are not relevant on the Android Editor port 2022-09-13 20:48:33 -07:00
Ted Spikes 21f7bd0723 Check for ios_simulator when building for x86_64 2022-09-13 14:04:08 +03:00
Rémi Verschelde ff824b6f9d Merge pull request #65509 from gotnospirit/master-os-get_datetime
get_datetime_* functions can return wrong values
2022-09-13 11:01:12 +02:00
Rémi Verschelde 5c1ef35def Merge pull request #65262 from bruvzg/win10_dm
Disable dark mode title bar on Windows 10.
2022-09-13 10:58:19 +02:00
Rémi Verschelde ad09e67894
Merge pull request #65682 from m4gr3d/update_editor_versioning_main 2022-09-13 10:38:21 +02:00
Rémi Verschelde f8ec046b14
Merge pull request #65704 from akien-mga/web-editor-fix-some-errors
Fix some errors affecting the Web editor
2022-09-13 08:31:59 +02:00
clayjohn 96b7cb66df Fix multiwindow support in GLES3 for X11, Windows, and MacOS.
Instead of updating all viewports, then blitting all viewports
to the backbuffer, then swapping all buffers, we run through
all viewports and render, blit, and swap backbuffer before
going to the next viewport.
2022-09-12 17:30:50 -07:00
Fredia Huya-Kouadio 1efafa9dfe Exclude small screens from the set of supported devices. 2022-09-12 09:47:34 -07:00
Fredia Huya-Kouadio 67b38d0ac2 Update the versioning logic for the Godot Android Editor
This is necessary to separate subsequent uploads to the Google Play store as each upload needs to increment the version code.
2022-09-12 09:47:07 -07:00
Rémi Verschelde 1513d76cb9 Fix some errors affecting the Web editor
- Don't warn about minimized/maximized modes not being available.
- Blender and FBX export both depend on running thirdparty applications,
  which can't be done (easily at least) for Web and Android editors.
- Editor theme complained about not being able to retrieve texture data
  for an icon. It was only used once so instead of flipping at runtime,
  let's just add a flipped icon.

Part of #65702.
2022-09-12 16:29:45 +02:00
Fabio Alessandrelli 27f22b29f8 [Web] Small fixes and enhancements.
- "Definitive" fix for ENOENT randomly disappearing from emscripten.
- Proper shutdown when setup fails.
- Re-enable WebGL explicit buffer swap.
- Re-enable optional per-pixel transparency.
- Add type cast to make closure compiler happy.
- Remove emscripten Safari WebGL workaround.
- Improve AudioWorklet cleanup.
2022-09-11 09:45:09 +02:00
James 0aecfc9254 Fixes #65377: get_datetime_* functions can return wrong values 2022-09-10 07:58:38 +08:00
Yuri Sizov d2a6a187f4
Merge pull request #44118 from Calinou/windows-enable-ansi-escape-codes
Enable ANSI escape code processing on Windows 10 and later
2022-09-08 19:53:04 +03:00
Rémi Verschelde c2c659db32 SCons: Refactor LTO options with `lto=<none|thin|full>`
Adds support for LTO on macOS and Android. We don't have much experience
with LTO on these platforms so for now we keep it disabled by default
even when `production=yes` is set.

Similarly for iOS where we ship object files for the user to link in
Xcode so LTO makes builds extremely slow to link.

`production=yes` defaults to full LTO.
ThinLTO is much faster for LLVM-based compilers but seems to produce
bigger binaries (at least for the Web platform).
2022-09-08 10:00:02 +02:00
Rémi Verschelde 69233093d7 Merge pull request #65241 from bruvzg/no_keymap_ambiguity
Fix key mapping changes when moving from macOS to other platform.
2022-09-08 09:24:24 +02:00
Rémi Verschelde a51dc70dfb Merge pull request #65460 from Faless/net/4.x_ssl_to_tls_more
[Net] Rename "ssl" references to "tls" in methods and members.
2022-09-08 09:20:19 +02:00
Rémi Verschelde df5a356e6c Merge pull request #65501 from m4gr3d/fix_invalid_project_manager_path_main
Fix issue causing the project manager to crash because of missing path argument
2022-09-08 09:19:25 +02:00
Fabio Alessandrelli a95d792420 [Net] Rename "ssl" references to "tls" in methods and members. 2022-09-08 03:24:23 +02:00
Fredia Huya-Kouadio cd544fd86b Fix issue causing the project manager to crash because of missing path argument
In the process, the initialization logic is updated to show an error message and gracefully close the engine when setup errors occur.
2022-09-07 14:21:34 -07:00
Fredia Huya-Kouadio c3c0bea615 Enable long press, pan and scale gestures for the Godot Android Editor
Fix the bug causing the editor to crash when running the project.
2022-09-07 13:30:10 -07:00
Fredia Huya-Kouadio 1b3511ad49 Cleanup the Android input logic implementation 2022-09-07 13:30:10 -07:00
MinusKube 06b86fad0d Fix MOUSE_MODE_CAPTURED not working correctly with popups 2022-09-07 19:31:57 +02:00
bruvzg 6f4d233062
Fix key mapping changes when moving from macOS to other platform
Removes separate `Command` key (use `Meta` instead).
Adds an event flag to automatically remap `Command` <-> `Control` (cannot be set alongside `Control` or `Meta`).
2022-09-07 18:45:35 +02:00
Fabio Alessandrelli 86dd3f312c [Web] Enable Web exporter in non-dev mode.
We now have a working OpenGL3/WebGL2 renderer, but extra work is needed
in project manager and editor to simplify the creation of OpenGL3
projects.
2022-09-07 11:58:30 +02:00
Fabio Alessandrelli fffdbb38e3
Merge pull request #65239 from Geequlim/js2web
Rename JavaScript singleton to JavaScriptBridge
2022-09-07 09:29:42 +02:00
Fabio Alessandrelli 528e791a5f [Net] Rename StreamPeerSSL to StreamPeerTLS.
SSL has been deprectated almost 10 years ago.
2022-09-07 07:38:50 +02:00
Rémi Verschelde 5062aafc2d Merge pull request #64417 from aaronfranke/has-space
Replace AABB/Rect2/Rect2i has_no_* methods with has_* methods
2022-09-06 17:00:44 +02:00
Micky b6daad8d4b Rename `range_lerp` to `remap` 2022-09-06 07:19:20 +02:00
Aaron Franke 995b9f94e8
Replace Rect2(i) has_no_area with has_area 2022-09-04 23:03:36 -05:00
MatthewZelriche ef02f06b8c Fix XSendEvent crash & bootsplash.
Fixes a crash due to an Xlib error, as well as ensures that Godot
holds the correct size of the window after window modes have been
applied, before exiting the DisplayServerX11 constructor. This ensures
the bootsplash will be displayed with the correct dimensions.

Fixes #65320
2022-09-04 16:46:37 -06:00
derammo 0c46b5f8e9 added more data structures to Natvis for msdev
can now debug signal_map and connections in Objects
can now view more Variant types, such as packed arrays
2022-09-04 12:06:26 -04:00
Jiri Suchan c69b22124e fix: graceful exit on macOS missing Vulkan 2022-09-04 12:00:47 +09:00
Rémi Verschelde 042050a47c
Merge pull request #65283 from bruvzg/reenable_per_pix_transp
Re-enable per-pixel transparency support on Linux, macOS, and Windows.
2022-09-03 23:52:18 +02:00
Rémi Verschelde 7ced3a6e37
Merge pull request #65111 from MatthewZelriche/DroppedXEventFix
Fix dropped XEvents early in main window lifetime.
2022-09-03 20:36:39 +02:00
bruvzg 57829b7cc4
Re-enable per-pixel transparency support on Linux, macOS, and Windows (for Vulkan and OpenGL rendering drivers). 2022-09-03 19:16:03 +03:00
bruvzg 6ce0d3a212 Disable dark mode title bar on Windows 10. 2022-09-03 11:11:22 +03:00
Raul Santos 471c9c2969
Add support for system dark mode (Linux)
- Use `org.freedesktop.appearance color-scheme` to support system dark mode.
2022-09-02 16:49:21 +02:00
Geequlim 48f9069f3a Rename JavaScript singleton to JavaScriptBridge 2022-09-02 21:11:15 +08:00
Rémi Verschelde fe0b893dc7 Merge pull request #65242 from bruvzg/menu_event_multiwindow 2022-09-02 13:55:37 +02:00
Rémi Verschelde f81a4b2478 Merge pull request #65026 from bruvzg/dark_mode 2022-09-02 13:54:46 +02:00
bruvzg f255ecb241
[macOS] Simplify handling of menu accelerators, and send event to the focused window instead of main. 2022-09-02 13:56:27 +03:00
Rémi Verschelde 027415312e
Merge pull request #65132 from bruvzg/global_menu_shortcuts_context 2022-09-01 17:02:04 +02:00
MatthewZelriche 91ba9bcb03 Fix dropped XEvents early in main window lifetime.
The DisplayServerX11 constructor processes pending events shortly
after constructing the main window. However, it discards pending events
on the event queue that it is not interested in. This results in these
events never making it to the main events thread and as a result are
never processed. We need to save the events we don't handle in
DisplayServerX11 so that they can be resent for later handling by the
events thread.
2022-09-01 07:42:03 -06:00
Rémi Verschelde d454b944e7
Merge pull request #65107 from MatthewZelriche/X11MinimizeMaximizeFix
Fix minimize/maximize not taking effect in X11.
2022-09-01 08:43:43 +02:00
bruvzg b85a4c5d79
[macOS] Handle accelerator and click events of the global menu items separately. 2022-09-01 08:13:56 +03:00
bruvzg 629ae58a80
Add support for system dark mode and accent color detection (macOS and Windows). Add support for dark mode title bar on Windows. 2022-08-31 11:37:01 +03:00
bruvzg 77a4567122
[Windows] Simplify cursor handling and add support for fully transparent cursors. 2022-08-31 11:16:02 +03:00
Rémi Verschelde c80ea41e3b
Merge pull request #65095 from m4gr3d/update_get_current_dir_main
Additional fixes to the Android `get_current_dir()` implementation.
2022-08-31 09:00:53 +02:00
Rémi Verschelde 87f9038ca0
Merge pull request #65094 from Faless/web/4.x_templates_refactor
[Web] Require threads, rtti, allow optimize=speed.
2022-08-30 23:57:02 +02:00
MatthewZelriche 87937bcf87 Fix minimize/maximize not taking effect in X11.
Attempts to construct an X11 window in an initial state of
minimized/maximized would fail due to the window being unmapped.
We simply check for failed mode changes during an unmap and reapply
them if necessary.
2022-08-30 12:52:24 -06:00
Fabio Alessandrelli f958f00283 [Web] Require threads, rtti, allow optimize=speed.
Update export names (web[_dlink]_[release|debug].zip).

The Build with dynamic linking is broken due to high number of imports
in output wasm (likely emscripten regression issue 15487).
2022-08-30 20:01:19 +02:00
Fredia Huya-Kouadio f916dff26d Additional fixes to the Android `get_current_dir()` implementation. 2022-08-30 10:04:12 -07:00
Rémi Verschelde 432b25d364
Merge pull request #65066 from aaronfranke/str-path-join 2022-08-30 10:01:11 +02:00
MatthewZelriche 37f3b9f1ef Fix fullscreen on X11.
Attempts to set a Godot window to fullscreen prior to the window being
mapped would silently fail. This commit uses
_window_fullscreen_check to test if a window had been set to fullscreen
while unmapped, and if so, resets it to fullscreen once the window has
been successfully mapped.

Fixes #54065
2022-08-29 19:11:20 -06:00
Aaron Franke 10a56981dc
Rename String `plus_file` to `path_join` 2022-08-29 19:38:13 -05:00
Fabio Alessandrelli d20b32186f [Web] Rename JavaScript platform to Web.
Also rename export name from "HTML5" to "Web".
2022-08-29 11:52:00 +02:00
Rémi Verschelde c08e84af0d
Merge pull request #64943 from MatthewZelriche/FixUnMappedAncestor 2022-08-29 08:19:50 +02:00
Rémi Verschelde 35af2b0edd
Merge pull request #64921 from bruvzg/win_arm
[Windows] Improve build environment detection, add support for Windows on ARM.
2022-08-27 18:46:54 +02:00
Rémi Verschelde 67e731d450
Merge pull request #64507 from RandomShaper/remove_unused
Remove unused `force_quit` variable from many OS abstractions
2022-08-27 18:42:20 +02:00
MatthewZelriche 93af2993f0 Fix X11 menu window bug.
Fixes an issue where XSetInputFocus fails due to the window not
being viewable.

Fixes #62635
Fixes #60690
2022-08-27 07:38:09 -06:00
bruvzg 8dab4a2aa3
[Windows] Improve build environment detection, add support for Windows on ARM. 2022-08-27 16:10:53 +03:00
Pedro J. Estébanez 6e647dea24 Remove unused force_quit variable from many OS abstractions 2022-08-27 13:41:53 +02:00
Rémi Verschelde 046c69b2a5
Merge pull request #64923 from akien-mga/scons-linux-gnu-ld-detection
Linux: Fix GNU ld detection for `pck_embed` linker script
2022-08-26 23:09:01 +02:00
Rémi Verschelde 4f60fd0480
Merge pull request #64777 from bruvzg/extend_to_title
[macOS] Extend editor contents to the window title bar for better space usage.
2022-08-26 23:03:31 +02:00
bruvzg bc4ba6cb78
[macOS] Extend editor contents to the window titlebar for better space usage. 2022-08-26 15:12:43 +03:00
Rémi Verschelde fce3602a1e Linux: Fix GNU ld detection for pck_embed linker script 2022-08-26 14:06:56 +02:00
bruvzg d91cb1d5d5
[macOS export] Simplify code signing options, add support for rcodesign tool for signing and notarization. 2022-08-26 14:23:31 +03:00
Rémi Verschelde ca26c78e7e
Merge pull request #64562 from bruvzg/fix_dup_locales
[macOS / iOS Export] Fix generation of duplicate locale property list files.
2022-08-26 10:47:28 +02:00
Rémi Verschelde 1b8f2e20bf
Merge pull request #64912 from m4gr3d/fix_android_arch_mapping_main
Revert the architecture values update made to the Android export logic
2022-08-26 07:45:02 +02:00
Fredia Huya-Kouadio ba9e2cf512 Revert the architecture values update made to the Android export logic 2022-08-25 20:06:48 -07:00
Hugo Locurcio ce56743aa1
Improve platform-specific READMEs to add useful links
This also adds READMEs for all platforms.
2022-08-25 17:50:53 +02:00
Aaron Franke 27b0f18275 Unify bits, arch, and android_arch into env["arch"]
Fully removes the `bits` option and adapts the code that relied on it.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-08-25 11:19:20 +02:00
Rémi Verschelde 8c1dc0c7ea
Merge pull request #64630 from nathanfranke/ios-opaque
(4.x) iOS: Force app store icon to be opaque, use proper errors
2022-08-25 08:43:39 +02:00
Rémi Verschelde 9085409492
Merge pull request #64414 from m4gr3d/fix_get_current_dir_main 2022-08-23 16:15:02 +02:00
kobewi 8be27dc59e Replace Array return types with TypedArray 2022-08-22 22:42:36 +02:00
Rémi Verschelde 7c85c4a27e
Merge pull request #64374 from RandomShaper/inheritable_cl_args 2022-08-22 21:48:28 +02:00
Fabio Alessandrelli 1e044da15c
Merge pull request #64481 from jamie-pate/master
Improve performance of screen_get_dpi() in Javascript
2022-08-20 13:36:04 +02:00
Fredia Huya-Kouadio a356e49803 Fix issue with `get_current_dir()` returning the wrong path on Android 2022-08-19 20:08:19 -07:00
Nathan Franke d769ff184f
ios: force app store icon to be opaque, use proper errors 2022-08-19 13:19:13 -05:00
Pedro J. Estébanez e886d662ec Overhaul CLI argument forwarding to processes started by the editor 2022-08-19 11:15:56 +02:00
bruvzg 8c56a7416b
Implement `MenuBar` control to wrap `PopupMenu`s or native menu, use native menu for editor. 2022-08-18 22:25:44 +03:00
bruvzg 16b45ee542
[macOS / iOS Export] Fix generation of duplicate locale property list files. 2022-08-18 09:44:43 +03:00
Jamie Pate c2e3971013 Improve performance of screen_get_dpi() in Javascript
Replace a bisect with a single multiplication when calling
screen_get_dpi() in Javascript

Tested the value of
window.matchMedia(`(resolution:${(window.devicePixelRatio*96).toFixed(100)}dpi)`).matches
which is true except for values that cause a lot of rounding errors
(e.g. dpr : 0.3  => resolution: 28.799999999999997dpi)

Even in these cases the value matches the result of the previous
`findDPI()` method.

See also:

6cff589b5b (r81273660)
2022-08-15 21:12:19 -07:00
Fredia Huya-Kouadio 44dc24ec38 Disable threads used to check on plugins to load
The functionality is unavailable on Android (requires export capability) and unnecessarily consumes resources
2022-08-15 02:30:43 -07:00
Fredia Huya-Kouadio b3117b6369 Fix issue preventing the Android Editor from displaying the project content
The issue was causing by a bug within the logic for `FileAccessFilesystemJAndroid#eof_reached()` causing that value to remain false after the eof was reached.
This in turn caused an infinite loop in the file scanner preventing the project's content from showing up.
2022-08-15 02:22:10 -07:00
Fredia Huya-Kouadio 45c7377556 Refactor the export checking logic to improve separation of concerns 2022-08-14 09:12:04 -07:00
Pedro J. Estébanez 8c2a577350 Clean iOS platform config of long gone macro 2022-08-10 21:42:49 +02:00
Rémi Verschelde 1b06b668c9
Merge pull request #49829 from naithar/feature/ios-plugins-swift-4.0 2022-08-10 14:09:58 +02:00
Hugo Locurcio debfc7c38b
Enable ANSI escape code processing on Windows 10 and later
This lets the engine and projects use the same color codes
in the terminal on all platforms. This includes support for
`print_rich()` (GDScript) and `print_line_rich()` (C++).
2022-08-10 00:53:11 +02:00
Sergey Minakov c99e8aeac3 [iOS] Extend iOS plugins to support Swift runtime 2022-08-09 20:20:54 +03:00
bruvzg 6510e11ae9
Fix memory leak when accessing/listing system fonts. 2022-08-09 12:57:53 +03:00
Rémi Verschelde 557c16bb88
Merge pull request #62885 from madmiraal/fix-59931 2022-08-08 15:53:48 +02:00
Rémi Verschelde 5df8eae862
Merge pull request #64014 from RedMser/keep-screen-on-singledef 2022-08-08 12:04:04 +02:00
RedMser c939f336d6 Only define `keep_screen_on` project setting once 2022-08-06 22:10:24 +02:00
Larry Tran 2ea4baae0a
Merge branch 'master' into bugfix-ios-export 2022-08-05 18:47:20 -05:00
Larry Tran e029e66454 Remove unnecessary string replacement 2022-08-05 18:15:57 -05:00
Rémi Verschelde 04a66e1bab
Merge pull request #63882 from RedMser/keep-screen-on-windows
Implement `keep_screen_on` for Windows
2022-08-05 23:47:20 +02:00
bruvzg 944779a132
Implement `screen_is_kept_on` for macOS. 2022-08-05 13:14:13 +03:00
RedMser 00e788e611 Implement `keep_screen_on` for Windows 2022-08-05 11:58:50 +02:00
Brian Semrau 103c0fa6e6 Add support for multiple virtual keyboard types 2022-08-04 10:41:33 -04:00
bruvzg 2f9be29c73
Implement `screen_set_keep_on` for macOS 2022-08-04 10:38:26 +03:00
Rémi Verschelde 9daffa12be
Merge pull request #49058 from madmiraal/add-override-fileaccess
Add override keywords to FileAccess and DirAccess derived classes
2022-08-02 20:03:24 +02:00
Marcel Admiraal c06025fa13 Add override keywords to DirAccess derived classes 2022-08-02 16:39:44 +01:00
Marcel Admiraal cafb19e608 Add override keywords to FileAccess derived classes 2022-08-02 16:35:15 +01:00
Rémi Verschelde 33258d850c
Merge pull request #61315 from lawnjelly/variant_bucket_pools
Variant memory pools
2022-08-02 15:54:18 +02:00
Rémi Verschelde 1418f97c70 File: Re-add support to skip CR (`\r`) in `File::get_as_text`
This was removed in #63481, and we confirmed that it's better like this,
but we add back the possibility to strip CR as an option, to optionally
restore the previous behavior.

For performance this is done directly in `String::parse_utf8`.

Also fixes Android `FileAccess::get_line()` as this one _should_ strip CR.

Supersedes #63717.
2022-08-01 00:40:35 +02:00
Yuri Sizov 9f55bd971e Extract EditorResourceConversionPlugin into its own source files and clean up editor includes 2022-07-31 21:14:15 +03:00
derammo 77b31ea365 Visual Studio Natvis file works for Variant again 2022-07-31 07:59:19 -04:00
Rémi Verschelde 3e5ad8213f
Merge pull request #63563 from aaronfranke/export-arch 2022-07-30 11:22:25 +02:00
Rémi Verschelde f4f8b18ebe
Merge pull request #63647 from bruvzg/exp_msg_imp
Improve some export error messages.
2022-07-30 09:21:11 +02:00
Rémi Verschelde 15a02c49be
Merge pull request #61647 from KoBeWi/SaverResource 2022-07-29 22:30:51 +02:00
bruvzg ea00cf7270
Improve some export error messages. 2022-07-29 22:44:59 +03:00
bruvzg d6a9384a32
[Linux] Fix build with missing DBUS. 2022-07-29 22:16:21 +03:00
kobewi c3606cb5f3 Swap arguments of ResourceSaver.save() 2022-07-29 19:53:09 +02:00
Rémi Verschelde 7199314eb3
Merge pull request #63595 from reduz/remove-signal-connect-binds
Remove Signal connect binds
2022-07-29 18:10:39 +02:00
Aaron Franke 17c4cd6412
Update export dialog to handle many architectures 2022-07-29 10:24:58 -05:00
Aaron Franke a0072ba39f
Make some editor export methods const 2022-07-29 10:24:13 -05:00
Juan Linietsky d4433ae6d3 Remove Signal connect binds
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
bruvzg f973069afb
[Linux] Load dbus libraries dynamically. 2022-07-29 11:19:19 +03:00
bruvzg 51c5ba9da7
[Linux] Replace fontconfig wrapper with a one generated from the older library version (2.12.6, Ubuntu 18.04 LTS). 2022-07-29 08:55:19 +03:00
Rémi Verschelde 0dcf679bdc
Merge pull request #63548 from pattlebass/master-html5-vibrate 2022-07-27 22:19:37 +02:00
pattlebass 130e715ab9 HTML5: Add support for `Input.vibrate_handheld()` 2022-07-27 22:54:41 +03:00
bruvzg 9ced8bcca3
Load fontconfig libraries dynamically. 2022-07-27 21:07:21 +03:00
bruvzg f86448520a
Fix Linux build without fontconfig. 2022-07-27 17:21:04 +03:00
Rémi Verschelde cc5135959b
Merge pull request #62973 from bruvzg/sysfont_support 2022-07-27 13:38:30 +02:00
Rémi Verschelde f3fbb157ca
Merge pull request #63121 from aaronfranke/editor-export-split 2022-07-27 11:19:40 +02:00
Rémi Verschelde 835da447da
Merge pull request #63481 from m4gr3d/fix_remaining_scoped_storage_regressions_main
Address remaining scoped storage regressions
2022-07-26 18:17:03 +02:00
Fredia Huya-Kouadio 9679c67904 Address remaining scoped storage regressions
- Accelerate common path used to check the storage scope for a given path
- Update the logic for the `get_as_text()` method - previous logic loads the content of a text file one byte at a time
2022-07-26 07:44:08 -07:00
Aaron Franke e53ae13178
Split up editor export code into multiple files 2022-07-26 08:28:19 -05:00
Rémi Verschelde ba2cffc575
Merge pull request #63096 from aaronfranke/exp-template-names 2022-07-26 10:28:25 +02:00
bruvzg 36ef8f29dc
Implement support for loading system fonts on Linux, macOS / iOS and Windows. 2022-07-26 08:38:05 +03:00
Rémi Verschelde 3e0e84a54c
Merge pull request #63459 from Kev/bigobj-for-msvc-release 2022-07-25 23:08:26 +02:00
Kevin Smith d8900e0020 Use bigobj for release MSVC builds
Previously it was used only on debug builds, but recent
additions to variant_call.cpp have made that unit too
large even in release_debug.

It was originally set to debug only because using it
breaks mingw, so this only reinstates it for MSVC where
it shouldn't have any drawbacks (famous last words).

Test-Information:
Builds for me with
scons -j 40 platform=windows target=release_debug
and my game then runs from it.
2022-07-25 20:10:20 +01:00
Rémi Verschelde 90019676b0 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
Rémi Verschelde 3084a48ace
Merge pull request #63219 from reduz/implement-vector4-projection 2022-07-25 11:13:27 +02:00
MaxIsJoe f3979527de Fixes `OS.get_unique_id()` string not getting printed properly
Fixes #61023

Changing it back to how it's done on the 3.x branch fixed the text not being written properly.
2022-07-24 11:05:36 +02:00
reduz 455c06ecd4 Implement Vector4, Vector4i, Projection
Implement built-in classes Vector4, Vector4i and Projection.

* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.

These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.

**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
Rémi Verschelde 667cef39b4
Merge pull request #63341 from RandomShaper/fix_uwp_accum_input
Flush buffered input events on UWP
2022-07-23 13:50:00 +02:00
Pedro J. Estébanez b53d032fb8 Flush buffered input events on UWP 2022-07-23 12:06:22 +02:00
Aaron Franke 8b5c744f95
Update export template names for Windows, Mac, and Linux 2022-07-22 18:40:59 -05:00
Rémi Verschelde f37990ed77
Merge pull request #63278 from akien-mga/scons-linux-refactor-linker 2022-07-22 11:40:10 +02:00
Rémi Verschelde ed926c4ec1
Merge pull request #63303 from hansemro/x11-eraser-case-insensitive
[X11] Do case-insensitive search for pen inversion detection
2022-07-22 09:17:04 +02:00
Hansem Ro 0f5436098b [X11] Do case-insensitive search for pen inversion detection 2022-07-21 19:25:22 -07:00
Rémi Verschelde c8479c0d4d SCons: Refactor Linux linker options with `linker=<bfd|gold|lld|mold>`
The new option is `linker` and lets the user specify the argument to
the`-fuse_ld=` linker flag directly. The supported options are:

- `default`: No change, typically uses GNU ld (bfd) unless the user or
  distro picked a different default `/usr/bin/ld`.
- `bfd`: GNU ld from binutils
- `gold`: GNU gold from binutils
- `lld`: lld from LLVM
- `mold`: mold, an extremely fast modern linker, not (yet) intended for
  use in production but great for development speed. Provided by distro
  `mold` package or needs to be compiled from source and installed to
  `/usr` otherwise.

Removes the `use_lld=yes` option, and make lld actually usable with GCC
too.

Not all the above are compatible or recommend for LTO, we recommend
using GNU ld with GCC LTO, or lld with LLVM ThinLTO.
2022-07-22 01:00:35 +02:00
bruvzg 3833165d85
[Export] Update generated CLI helper script to work on clean macOS Monterey installation. 2022-07-21 13:50:37 +03:00
bruvzg 8823eae328
Rename OSX to macOS and iPhoneOS to iOS. 2022-07-21 09:37:52 +03:00
Riteo a21f8b7c13 Improve `linuxbsd` headless building, cleanup build scripts
Now the `linuxbsd` platform can be built headlessly (e.g. without X11
development libraries).

I also cleaned up some weird (old?) usages of the `env` variable which
seem to make no difference and are used nowhere else.
2022-07-20 19:48:35 +02:00
Riteo f035e7844f Remove `-pipe` from `LINKFLAGS`
For some reason this fixes the CI from going OOM.
2022-07-20 19:04:31 +02:00
bruvzg 680b5f1afb
[Windows] Set fullscreen flags on window creation. 2022-07-19 13:36:39 +03:00
bruvzg 7c005ba723
Improve DisplayServer.window_set_current_screen
Prevent unnecessary fullscreen toggle animation on macOS, when screen is not changed
Fix window position on Linux/X11
2022-07-19 12:26:11 +03:00
pattlebass d57a76c809 HTML5: Make `OS.get_locale()` match other platforms
Fixes #63029.
2022-07-15 22:11:39 +03:00
Marcel Admiraal 6661141c21 Fix incorrect Android scancodes 2022-07-13 16:24:01 +01:00
Rémi Verschelde 19b10e2784
Merge pull request #62824 from MinusKube/haunted-editor-bug
Fix haunted editor bug causing weird issues with mouse behaviour
2022-07-13 14:13:16 +02:00
Rémi Verschelde 9b3972ad48
Merge pull request #62843 from RandomShaper/fix_iphone_input
Flush accumulated input events on iOS
2022-07-11 18:28:36 +02:00
Pedro J. Estébanez 1b98e904d0 Flush accumulated input events on iOS 2022-07-08 21:37:07 +02:00
kobewi d2900429e8 Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
MinusKube 7b05df8029 Move windows display server's 'outside' field to WindowData struct 2022-07-07 21:11:00 +02:00
Rémi Verschelde 1b8711b56c
Merge pull request #62813 from bruvzg/android_fix_zstd_build 2022-07-07 15:16:57 +02:00
bruvzg e873778561 Use clang as assembler to ensure preprocessing is done, and add assembler "target" flag. 2022-07-07 14:15:12 +03:00
bruvzg 238ac2fdd5
[macOS] Improve file association handling, and allow URL schema handling. 2022-07-07 12:11:31 +03:00
bruvzg a194043ea8
Check if GL manager exist to prevent crash when using multithreaded renderer with Vulkan. 2022-07-06 09:56:47 +03:00
Fredia Huya-Kouadio f9c19298ce Add full support for Android scoped storage.
This was done by refactoring directory and file access handling for the Android platform so that any general filesystem access type go through the Android layer.
This allows us to validate whether the access is unrestricted, or whether it falls under scoped storage and thus act appropriately.
2022-07-05 03:00:37 -07:00
Rémi Verschelde 344b42703b
Merge pull request #62212 from hansemro/eraser-detect-4
Add inversion/eraser-end property for tablet pens
2022-07-04 21:48:19 +02:00
Hansem Ro 6dcc9d1131 [macOS, Windows, X11] Add stylus inverted/eraser support to
InputEventMouseMotion event
2022-07-04 10:36:53 -07:00
lawnjelly b221eab426 Variant memory pools
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-07-04 12:01:46 +01:00
Rémi Verschelde e79cb76146
Merge pull request #62611 from akien-mga/android-preset-refactor-custom-build 2022-07-03 18:38:39 +02:00
Rémi Verschelde ef4a5cd10b Android: Refactor Custom Build options in export preset
Instead of reusing the custom_template/ prefix which is actually only
used for the prebuilt APK workflow, we add a new custom_build/ prefix.

This is a slight compat breakage (users will have to redo their config)
but enables us to group the Min SDK and Target SDK options where they make
sense, and avoid reusing the previously hardcoded Target SDK 30 from
Godot 3.4.

Those two options are now strings instead of integers so that we can keep
them empty by default, and show their default value using a placeholder.
So some validation has been added to make sure they are proper ints.
The upper bound on Target SDK was also removed as it's a common use case
to use it to try to target newer released SDKs. But we warn the user that
this wasn't validated by us.

The export info dialog is now exclusive so that when it doesn't auto-close,
i.e. when it errors, you don't close it by mistake by clicking outside.

Fixes #62465.
2022-07-03 17:05:28 +02:00
bruvzg b2462cfd8a
[macOS] Use statically linked MoltenVK by default, automatically detect MoltenVK SDK install (only in the default location). 2022-07-03 17:11:18 +03:00
Rémi Verschelde ec1348a72a
Merge pull request #62618 from Bromeon/bugfix/exit-code
Fix exit code of --help and --version, and test them in CI
2022-07-02 10:25:03 +02:00
Fabio Alessandrelli 04bdd7eb93
Merge pull request #62607 from RPicster/master-default-cursor-fix
Default cursor fix for html5 export
2022-07-02 08:05:52 +02:00
Jan Haller d38d76d039 Fix exit code of --help and --version, and test them in CI
Corrects prior regression which caused ERROR output and exit code of 1.
2022-07-02 01:17:35 +02:00
bruvzg 4cca1352b9
[macOS export] Unref FileAccess to ensure chmod is successful. 2022-07-02 00:34:27 +03:00
Raffaele Picca 7e43fb6ad2 Default cursor fix for html5 export 2022-07-01 20:50:04 +02:00
bruvzg b767d2e0fd
Add arch flag to assembler to fix build on ARM64 macOS / iOS. 2022-07-01 12:44:23 +03:00
Wilson E. Alvarez aadf831a67 Properly check for fullscreen toggle made through the Window Manager
Fixes #40007.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-06-30 12:14:46 +02:00
Rémi Verschelde 898e09e2e6
Merge pull request #61691 from madmiraal/android-ndk-23
Upgrade Android NDK to r23 LTS
2022-06-26 21:23:23 +02:00
Fredia Huya-Kouadio 6a7471b204
Merge pull request #62289 from madmiraal/fix-61816
Remove broken scroll gesture on Android
2022-06-25 18:48:14 -07:00
Marcel Admiraal 48efd563e4 Upgrade Android NDK to r23 LTS 2022-06-25 14:58:30 +01:00
Gustavo Maciel ec6d5d6cba Update android:targetSdkVersion from 30 to 31
Starting in August 2022, new apps will need to target API level 31 (Android 12) or higher and adjust for behavioral changes.

Read more here: https://developer.android.com/google/play/requirements/target-sdk
2022-06-23 15:17:15 +02:00
Marcel Admiraal 076638f13b Remove broken scroll gesture on Android 2022-06-21 17:14:20 +01:00
Rémi Verschelde a60e2085b6
Merge pull request #62000 from gregcsokas/master 2022-06-17 13:02:19 +02:00
gregcsokas 42e619c01e Adding function key support from F17 to F35
OSX supports everything by default,
Linux is also capable of supporting every function key,
Windows as I know support only up to F24
2022-06-16 19:38:21 +02:00
Marcel Admiraal 806e7d18d1 Ensure joystick has been added or not already removed when processing input 2022-06-16 18:15:25 +01:00
Jiri Suchan 8d94d26caf refactoring: simplify compiler version check 2022-06-14 22:23:20 +07:00
Fabio Alessandrelli 3a2fbd6fae [HTML5] Add GDNative+Threads build. 2022-06-14 14:09:06 +02:00
Fredia Huya-Kouadio 6b9a81900e Migrate the Godot Editor java source file to Kotlin. 2022-06-09 13:26:24 -07:00
bruvzg e00571b194
Add readable export errors. 2022-06-08 17:55:46 +03:00
bruvzg 40b3be7912
Remove mouse events that closed the popup from queue, to fix pop-up reopening. 2022-06-02 08:35:27 +03:00
Rémi Verschelde cd7871867f
Merge pull request #61579 from madmiraal/android-kotlin-java-version
Ensure Android Java and Kotlin compile to the same version
2022-06-01 18:31:09 +02:00
Marcel Admiraal b19bbadcf0 Ensure Android Java and Kotlin compile to the same version 2022-06-01 16:23:44 +01:00
Fredia Huya-Kouadio 6f7ec7f723 Misc editor tweaks and polishes:
- Using a bucketized approach to select the editor scale in order to avoid too high values
- Add default app dimensions: used on Android devices with free floating app windows to set the default app frame
- Add ability to launch the Game window in an adjacent frame when in multi window mode
2022-05-31 23:49:40 -07:00
Rémi Verschelde b777454097
Merge pull request #61573 from madmiraal/android-cleanup
Cleanup Android C++ code
2022-05-31 23:48:16 +02:00
Marcel Admiraal 2afef001e7 Cleanup Android C++ code 2022-05-31 17:11:05 +01:00
Marcel Admiraal d0cb299f04 Only use Android fullscreen theme for splash screen 2022-05-27 16:54:44 +02:00
Rémi Verschelde 6aa7449d60 HTML5: Run `npm audit fix`
And re-add `node_modules` to `.gitignore` which I mistakenly removed
with an earlier cleanup.
2022-05-25 14:56:43 +02:00
Rémi Verschelde 3ff6d794c0 HTML5: Enable mbedTLS module for Crypto object
Increases the size of the wasm by around 3% (~300-350 KiB).

This enables using the Crypto object for hashing, signing and encryption,
and therefore reduces the gap between the features of the HTML5 platform
and other platforms.

Closes https://github.com/godotengine/godot-proposals/issues/3574.
2022-05-25 14:19:49 +02:00
Rémi Verschelde 360119ffbf
Merge pull request #61352 from Faless/ext/linux_export
[Editor] Fix GDExtension GNU/Linux export.
2022-05-25 01:17:59 +02:00
Fabio Alessandrelli 9c2b5ae5ce [Editor] LinuxBSD export reports Linux as OS name.
This is in line with what's reported by the `OS` class on GNU/Linux, and
is required by the extension exporter to identify the correct library.

For BSD, we should either finish splitting the platform (into
platform/bsd) or register a separate exporter with OS name BSD and
proper templates detection.
2022-05-24 12:01:34 +02:00
Rémi Verschelde 3bee0689bc
Merge pull request #61333 from m4gr3d/fix_restart_logic_main 2022-05-23 23:11:53 +02:00
Fredia Huya-Kouadio d38ffda2c3 Fix the logic to restart the Godot application 2022-05-23 13:15:48 -07:00
Rémi Verschelde 9b3dd5e8c5
Merge pull request #61330 from madmiraal/android-duplicate-register
Remove duplicate Android sensor listener registrations
2022-05-23 21:58:50 +02:00
Rémi Verschelde 9923851370 Fix typos with codespell
Using codespell 2.2-dev from current git.
2022-05-23 21:32:19 +02:00
Marcel Admiraal cf0f967e6d Remove duplicate Android sensor listener registrations 2022-05-23 20:33:13 +02:00
reduz 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
Rémi Verschelde 3aa83a0235
Merge pull request #61020 from timothyqiu/wait-busy 2022-05-19 15:41:41 +02:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
Haoyu Qiu fc3b845c07 Add dedicated macros for property name extraction
* Replace case-by-case extraction with PNAME & GNAME
* Fix group handling when group hint begins with property name
* Exclude properties that are PROPERTY_USAGE_NO_EDITOR
* Extract missing ADD_ARRAY*, ADD_SUBGROUP* macros
2022-05-19 14:08:47 +08:00
Rémi Verschelde ccdd85d8e7
Merge pull request #61001 from derammo/derammo_popup_conditional_hide 2022-05-17 12:56:53 +02:00
Rémi Verschelde d6e7dcbea9
Merge pull request #61074 from timoschwarzer/fix-ios-vibration-duration 2022-05-16 12:00:26 +02:00
reduz 746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
Timo Schwarzer 05d524b624
Fix vibration duration on iOS
Fixes #61063
2022-05-16 10:34:49 +02:00
Haoyu Qiu ffd5362187 Swap the meaning of CURSOR_WAIT and CURSOR_BUSY 2022-05-14 10:13:42 +08:00
derammo 47d0dc8a41 popup deferred hide suppressed if reopened
popup no longer tries to close itself a second time
popup no longer closes after having been reopened
fixed bug in RenameDialog not calling base (by inspection)
fixes #59181
fixes #60921
reverts #59287
2022-05-13 09:30:00 -04:00
Rémi Verschelde 349aa9c884
Merge pull request #60894 from derammo/derammo_opengl3_windows 2022-05-13 15:07:13 +02:00
Hugo Locurcio 78b4ec2d4d
Increase compiler optimization when using `target=release` on iOS/Android 2022-05-13 01:12:20 +02:00
Rémi Verschelde ff30a09993
Merge pull request #60643 from clayjohn/GLES3-3D 2022-05-12 21:08:02 +02:00
clayjohn 652adcd5bf Basic 3D rendering 2022-05-12 10:37:27 -07:00
reduz 8b7c7f5a75 Add a new HashMap implementation
Adds a new, cleaned up, HashMap implementation.

* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
  for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).

This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
derammo 96c21bc749 opengl3 driver now works on windows including multi window
fixed and simplified gl_manager_windows
swap buffers now called for all windows
fixed missing pixel format setting in additional windows
    this makes them work in OpenGL contexts
changed verbose error printing to write once
    this error message happens very frequently while opengl3 is not finished
removed dead code no longer needed after changes
fixed comments that were misinformation
window messages during window creation now handled
    these were previously discarded
    messages now tunnel the required context
changed failure to create opengl3 window on windows to be more fatal
marked a problem with pen code
conditional compilation of vulkan and opengl3 on windows fixed
windows debug builds now show messages on debug console also
rendering driver selection box now shows only compiled drivers
marked some problematic code
thanks to akien-mga for patiently rewriting my style mistakes
2022-05-11 16:12:40 -04:00
bruvzg d36c5514d3
Fix ZipIO crash when reused (and possible leaks). 2022-05-11 16:08:17 +03:00
Fabio Alessandrelli 9bdb853eec [HTML5] Limit the returned OS cpu count to 2.
Temporarily workaround issues due to godot spawning too many threads.
2022-05-11 00:26:02 +02:00
Fabio Alessandrelli 39d9a5540c [HTML5] Fix JS "tools" editor plugin.
Needed update after file/dir access refactoring.
2022-05-10 23:56:32 +02:00
Fabio Alessandrelli e8110474b6 [HTML5] Add "webgl/webgl2.h" as OpenGL include.
Requires emscripten versions > 2.0.17 .
2022-05-10 23:56:21 +02:00
bruvzg ffe61e0895
[macOS / iOS] Fix text-to-speech build with older macOS / iOS SDK.
Add __has_include check for AVFAudio include.
Add some explicit casts to avoid conflicts.
Change all `include`s to `import`s for consistency.
2022-05-10 21:11:34 +03:00
Haoyu Qiu a71e808112 Try to convert OS::execute() output to Unicode on Windows 2022-05-10 20:54:48 +08:00
bruvzg b268c4b4bc [Windows] Save and re-apply window icon when changing window style. 2022-05-10 11:12:04 +03:00
Rémi Verschelde c366f8d2d4 Crash handler: Use `print_error` to include backtrace in logs 2022-05-05 12:22:56 +02:00
Marcel Admiraal c893302ca1 Read and store joypad events in a separate thread on x11 platform 2022-05-05 07:51:54 +02:00
bruvzg 800a68837f Fix export plugins after embedded PCK loading changes. 2022-05-04 12:57:21 +03:00
Rémi Verschelde 5022efef02
Merge pull request #51682 from mdavisprog/os-is-process-running
OS::is_process_running function.
2022-05-04 09:02:33 +02:00
mdavisprog f3c1232c59 Add OS::is_process_running function.
Adds the is_process_running function to the native OS class and exposes it to script.

This is implemented on Windows and Unix platforms. A stub is provided for other platforms that do not support this function.

Documentation is updated to reflect new API function.
2022-05-03 17:27:17 -07:00
Fabio Alessandrelli 070bd87aaa [JS] Add flag to disable weak symbols in ZSTD.
Weak symbols are currently broken in upstream emscripten.
2022-05-03 21:52:55 +02:00
Fabio Alessandrelli a4c3e915be Added missing signature. 2022-05-03 18:44:49 +02:00
Rémi Verschelde 297241f368
Merge pull request #60714 from Calinou/typedef-remove-ref
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
2022-05-03 14:28:18 +02:00
Rémi Verschelde cb7a5a81ad
Merge pull request #60224 from pfeodrippe/fix-simultaneous-touches 2022-05-03 13:56:45 +02:00
Rémi Verschelde 3894b08d0d
Merge pull request #60553 from madmiraal/separate-display_safe_area 2022-05-03 11:20:46 +02:00
Rémi Verschelde c9ce4069a3
Merge pull request #60601 from touilleMan/gdextension_get_library_path
Add GDNativeInterface::get_library_path to GDExtension
2022-05-03 08:13:34 +02:00
Hugo Locurcio 180e5d3028
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
2022-05-03 01:43:50 +02:00
Rémi Verschelde c273ddc3ee Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`
Didn't commit all the changes where it wants to initialize a struct
with `{}`. Should be reviewed in a separate PR.

Option `IgnoreArrays` enabled for now to be conservative, can be
disabled to see if it proposes more useful changes.

Also fixed manually a handful of other missing initializations / moved
some from constructors.
2022-05-02 16:28:25 +02:00
Rémi Verschelde d56462d82a
Merge pull request #60638 from m4gr3d/support_hand_tracking_v2_main 2022-05-02 09:51:21 +02:00
Marcel Admiraal 97e87a2daf Fix screen_get_usable_rect returning display safe area 2022-05-02 09:31:32 +02:00
Rémi Verschelde bc7ccc909b
Merge pull request #60551 from madmiraal/implement-3466
Add a method for obtaining display cutouts on Android
2022-05-02 07:56:41 +02:00
Emmanuel Leblond 80f61352fb
Add GDNativeInterface::get_library_path to GDExtension 2022-04-29 00:51:04 +02:00
Rémi Verschelde cbdc33bcf7
Merge pull request #60563 from madmiraal/fix-60562 2022-04-29 00:30:30 +02:00
bruvzg 652f78785b
[Linux] Disable speech-dispatcher, pulse audio and udev wrapper builds, when library is not found. 2022-04-28 18:13:34 +03:00
bruvzg 6ab672d1ef Implement text-to-speech support on Android, iOS, HTML5, Linux, macOS and Windows.
Implement TextServer word break method.
2022-04-28 14:35:41 +03:00
bruvzg 2ca91948de [Windows Export] Improve error messages for missing rcedit and signtool. 2022-04-28 10:48:30 +03:00
Fredy Huya-Kouadio c63ca6c72b Update Meta hand tracking version
https://developer.oculus.com/blog/presence-platforms-hand-tracking-api-gets-an-upgrade/
2022-04-27 20:56:24 -07:00
Marcel Admiraal 5924e2b90e Check for null when retrieving clip data item text on Android 2022-04-27 16:12:33 +02:00
Rémi Verschelde 504708ae21
Merge pull request #56093 from bruvzg/pck_section_load
Improve embedded PCK loading and exporting.
2022-04-27 14:29:21 +02:00
Rémi Verschelde 8dfa12cae7
Merge pull request #59979 from bruvzg/cpp_check2 2022-04-27 10:08:26 +02:00
Rémi Verschelde a300fb6665
Merge pull request #60523 from akien-mga/linux-pkgconfig-nixos 2022-04-27 09:41:58 +02:00
Rémi Verschelde 8a996d7b38
Merge pull request #60397 from timoschwarzer/ios-haptic-engine 2022-04-27 09:40:58 +02:00
Rémi Verschelde e89fc52ec6
Merge pull request #58272 from bruvzg/x11_backup_screen_info 2022-04-27 09:34:25 +02:00
Marcel Admiraal 71ce5857ec Add a method for obtaining display cutouts on Android 2022-04-26 13:51:21 +02:00
Rémi Verschelde 07ad066420 Linux: Use pkg-config for alsa, libudev and GL too
It's not needed on most distros as those are found in standard lib
and include paths, but on NixOS they're all in non-standard prefixes,
so we need to rely on information provided by pkg-config.

Fixes #59913.

Co-authored-by: David Lewis <davidalewis00@gmail.com>
2022-04-26 09:37:28 +02:00
Rémi Verschelde d9f7da2230
Merge pull request #60433 from madmiraal/remove-superfluous-null-check
Remove superfluous null check
2022-04-25 16:02:40 +02:00
Rémi Verschelde b4a1a76bce
Merge pull request #60457 from madmiraal/replace-index-iterators
Replace index iterators with for each loops.
2022-04-25 16:02:28 +02:00
Rémi Verschelde 5e599d7c22
Merge pull request #60441 from madmiraal/remove-superfluous-inputmanager
Remove superfluous Android InputManager interface and implementation
2022-04-25 15:41:55 +02:00
Rémi Verschelde d167583517
Merge pull request #60434 from madmiraal/remove-superfluous-version-check
Remove superfluous check for minimum Android SDK.
2022-04-25 15:40:33 +02:00
Fredy Huya-Kouadio 3b1e62bc7c Fix the issue causing the screen to be black after resuming when in low processor mode.
This is done by forcing a redraw and buffers swap when resuming the app.
2022-04-25 00:25:17 -07:00
Marcel Admiraal 334ebd7eb7 Replace index iterators with for each loops. 2022-04-23 09:45:44 +02:00
Marcel Admiraal 2f225bf2c5 Remove superfluous check for minimum Android SDK. 2022-04-22 18:55:45 +02:00
Marcel Admiraal 22ca5b2eba Remove superfluous Android InputManager interface and implementation 2022-04-22 18:52:06 +02:00
Marcel Admiraal 988432b8bb Remove superfluous null check 2022-04-22 17:33:27 +02:00
Timo Schwarzer 4d3a7ad6ca
Vibrate using iOS haptics engine on supported devices 2022-04-20 22:28:29 +02:00
bruvzg c0cc41d6c1
Improve embedded PCK loading and exporting.
Windows export process:
  Limit size of executable with embedded PCK to 4 GB.
  Use "rcedit" before embedding PCK.
  Capture and process "rcedit" errors.

Windows, Linux:
  Add support for PCK loading from executable "pck" section.
2022-04-20 11:09:59 +03:00
bruvzg de4c97758a
Fix more issues found by cppcheck. 2022-04-20 10:34:00 +03:00
Paulo Feodrippe a6f06d57dc Fix simulatenous touches for different touch types 2022-04-13 22:52:08 -03:00
bruvzg 8b0761d1fd
Fix sub-menu keyboard navigation. 2022-04-13 09:58:38 +03:00
bruvzg d2ebac3a30
Remove or make private `FileAccess` `close()` methods. 2022-04-12 14:50:14 +03:00
bruvzg 4bf99f4af2 Narrow FileAccess scope to prevent deadlocks. 2022-04-12 10:54:39 +03:00
bruvzg 9381acb6a4
Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
bruvzg f851c4aa33
Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
Rémi Verschelde b79721fede
Merge pull request #59908 from bruvzg/fix_popup_close_race
Fix a possible race condition on popup close, that might cause multiple deletions of the same list item.
2022-04-06 08:35:56 +02:00
Rémi Verschelde 77843355a0 CI: Update black formatter and apply changes 2022-04-05 17:43:12 +02:00
bruvzg daa42e0e50
Fix a possible race condition on popup close, that might cause multiple deletions of the same list item. 2022-04-05 12:44:29 +03:00
Rémi Verschelde f8ab79e68a Zero initialize all pointer class and struct members
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Rémi Verschelde 53317bbe14
Merge pull request #59866 from m4gr3d/update_default_display_scale_main 2022-04-04 19:31:37 +02:00
Fredia Huya-Kouadio 8eabf77f54 Update the editor display scale based on the device's scaled density 2022-04-04 09:23:43 -07:00
Fredia Huya-Kouadio f1a7caf9bb Remove duplicate `resizable` settings 2022-04-04 09:18:07 -07:00
Rémi Verschelde 10d9e47949
Merge pull request #59861 from m4gr3d/enable_resizable_main 2022-04-04 11:17:24 +02:00
Fredia Huya-Kouadio 3f299e9255 Update `resize` settings:
- Unlock resizing for the Godot Editor
- Add an option to specify whether a game is resizeable for the Godot template
2022-04-04 01:02:10 -07:00
bruvzg 50bd5e6fbe
[macOS] Add bundle launch code for older (pre 10.15) macOS versions. 2022-04-04 08:04:37 +03:00
bruvzg ba0317be04
Add CI build with clang sanitizers, increase stack size to 30 MB for builds with sanitizers. 2022-04-01 13:15:35 +03:00
ConteZero 2eb36b8bdb Fix X11 is_window_maximized 2022-03-31 23:21:32 +02:00
Rémi Verschelde a647fb3e62 Fix typos with codespell
Using codespell 2.2-dev from current git.

Fix a couple incorrect uses of gendered pronouns.
2022-03-31 14:07:29 +02:00
Rémi Verschelde 04c17eb003
Merge pull request #59607 from m4gr3d/fix_low_processor_mode_main
Fix flickering issues with low processor mode on Android
2022-03-29 21:52:08 +02:00
Fredia Huya-Kouadio b176b31f5d Fix flickering issues with low processor mode on Android 2022-03-29 12:17:09 -07:00
Lyuma ee02a7f785 Keep editor at normal priority on windows.
The multithreaded importer often causes system-wide hangs when importing more than 20 files at a time.
Running the editor at normal priority allows other applications on the system to be responsive during long imports.
2022-03-29 00:01:31 -07:00
Fredy Huya-Kouadio 5711037bf6 Android port of the Godot Editor
These set of changes focus primarily on getting the core logic and overall Godot Editor UI and functionality up and running natively on Android devices.
UI tweaks / cleanup / polish, as well configuration for Android specific functionality / restrictions will be addressed in follow-up PRs iteratively based on feedback.

Co-authored-by: thebestnom <shoval.arad@gmail.com>
2022-03-28 14:04:51 -07:00
Rémi Verschelde 00e9170812
Merge pull request #59574 from Sauermann/proposal-rename-warp-mouse
Rename warp mouse functions to warp_mouse
2022-03-28 08:52:02 +02:00
Markus Sauermann 0494e024d8 Rename warp mouse functions to warp_mouse 2022-03-27 14:12:01 +02:00
Rémi Verschelde 93b7a85c98 HTML5: Explain why export templates are missing
Same for UWP.

This is skipped in DEV_ENABLED builds so contributors can still test
the export pipeline (and CI still compiles it on debug builds).
2022-03-26 20:27:36 +01:00
Rémi Verschelde 391633760b
Merge pull request #59465 from fountainment/fix_popupmenu 2022-03-24 12:52:42 +01:00
C.Even 6866eee641 Fix PopupMenu behavior on MacOS when multiple monitors are used
* DisplayServerOSX::mouse_get_position returns wrong x axis data in
  multi-monitor case, which makes mouse_process_popups send
  WINDOW_EVENT_CLOSE_REQUEST, then eventually make PopupMenu close on
  mouse down without activating item.
2022-03-24 18:04:41 +08:00
Rémi Verschelde 476b8a2249
Merge pull request #59416 from aaronfranke/export-file 2022-03-24 09:55:24 +01:00
dependabot[bot] 505dce7528
Bump minimist from 1.2.5 to 1.2.6 in /platform/javascript
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-23 19:50:11 +00:00
Aaron Franke 13392a96e9
Generate export template file names instead of having a fixed set 2022-03-22 10:16:03 -05:00
Rémi Verschelde 9433c1d70c
Merge pull request #59394 from aaronfranke/linux-export-x86_32 2022-03-22 13:31:28 +01:00
bruvzg 595995a5a7
[macOS] Add missing global menu features. 2022-03-22 12:38:14 +02:00
Aaron Franke ac3ecec58e
Change extension for Linux 32-bit x86 exports to x86_32 2022-03-21 14:56:27 -05:00
Aaron Franke f301451fa3
Move extension logic to EditorExportPlatformLinuxBSD 2022-03-21 12:50:31 -05:00
Aaron Franke e5e697564d
Move fixup_embedded_pck to EditorExportPlatform classes 2022-03-20 21:04:22 -05:00
Rémi Verschelde 02f61d9fb3
Merge pull request #59287 from Vitika9/59181
Right-clicking will not close popup in windows
2022-03-18 19:45:30 +01:00
Vitika9 8bbc7614f6 Right-clicking will not close popup 2022-03-18 22:13:54 +05:30
Rémi Verschelde cc1bc09090
Merge pull request #58455 from bruvzg/export_script 2022-03-18 14:34:42 +01:00
Rémi Verschelde 70eb95c30c
Merge pull request #57850 from pkowal1982/icon
Change godot.ico to uncompressed/fixed size
2022-03-18 07:41:30 +01:00
ztco224 4802f15231 Fix DST Error on Windows 2022-03-17 06:28:08 -04:00
Rémi Verschelde f995f47965
Merge pull request #59062 from BastiaanOlij/storagerd_texture 2022-03-17 10:08:33 +01:00
Rémi Verschelde 5c7971d856
Merge pull request #59146 from m4gr3d/setup_mavencentral_publishing 2022-03-16 17:24:22 +01:00
Rémi Verschelde fa37f17029 Windows: Properly set `mouse_monitor` instead of shadowing it
GCC was raising a warning about unused variable, but it's actually meant
to be used in the destructor for deinit.
2022-03-16 15:48:56 +01:00
bruvzg 98d0af7d5c
Implement GDExtension export plugin. 2022-03-16 11:16:19 +02:00
Bastiaan Olij 57e5a33623 Split dummy renderer classes into separate files
Split canvas_texture_storage and texture_storage from render_storage class
2022-03-16 17:43:10 +11:00
Fredia Huya-Kouadio a2bf47de2b Setup logic to publish the Godot Android library to MavenCentral 2022-03-14 14:53:39 -07:00
bruvzg f0315c28a8
[Export] Add "export console script" option for Linux, macOS, and Windows exports. 2022-03-14 17:19:18 +02:00
Hendrik Brucker fba80dbd63 Reenable window_set_vsync_mode on Windows 2022-03-13 15:04:59 +01:00
Rémi Verschelde 015fdfc28d
Merge pull request #58986 from akien-mga/diraccessref 2022-03-11 12:51:22 +01:00
Rémi Verschelde 952b71a425
Merge pull request #58751 from bruvzg/loc_str_props 2022-03-11 10:45:02 +01:00
Rémi Verschelde 768f9422bc Convert uses of `DirAccess *` to `DirAccessRef` to prevent memleaks
`DirAccess *` needs to be deleted manually, and this is often forgotten
especially when doing early returns with `ERR_FAIL_COND`.
`DirAccessRef` is deleted automatically when it goes out of scope.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2022-03-11 09:13:11 +01:00
Rémi Verschelde 7866c98479
Merge pull request #58335 from maiself/fix-directory-delete-linux 2022-03-10 21:29:40 +01:00
reduz 6f51eca1e3 Discern between virtual and abstract class bindings
* Previous "virtual" classes (which can't be instantiated) are not corretly named "abstract".
* Added a new "virtual" category for classes, they can't be instantiated from the editor, but can be inherited from script and extensions.
* Converted a large amount of classes from "abstract" to "virtual" where it makes sense.

Most classes that make sense have been converted. Missing:

* Physics servers
* VideoStream
* Script* classes.

which will go in a separate PR due to the complexity involved.
2022-03-10 12:28:11 +01:00
Rémi Verschelde 3d7f155586 Remove unused Bullet module and thirdparty code
It has been disabled in `master` since one year (#45852) and our plan
is for Bullet, and possibly other thirdparty physics engines, to be
implemented via GDExtension so that they can be selected by the users
who need them.
2022-03-09 21:45:47 +01:00
reduz 21637dfc25 Remove VARIANT_ARG* macros
* Very old macros from the time Godot was created.
* Limited arguments to 5 (then later changed to 8) in many places.
* They were replaced by C++11 Variadic Templates.
* Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard.
* Also added a dereference check for Variant*. Helped catch a couple of bugs.
2022-03-09 18:39:13 +01:00
Rémi Verschelde 9b05f29894 Remove unused GDNative code
This has been superseded by GDExtension so this code is no longer useful
nor usable.

There's still some GDNative-related stuff in platform export code which
needs to be adapted for GDExtension (e.g. to include GDExtension libraries
in exports).
2022-03-09 13:59:03 +01:00
MmAaXx500 eda3180395
Add missing header for headless builds 2022-03-09 09:58:20 +01:00
bruvzg 3cc37342c4
[X11] Do not try to focus unmapped window. 2022-03-08 11:46:44 +02:00
Rémi Verschelde 63df46c238
Revert "[HTML5] Fetch API now passes credentials." 2022-03-07 12:52:26 +01:00
reduz ccd4cdfd8b Rename StreamTexture* to CompressedTexture*
* Its not and will not be used for streaming.
* Streaming will be implemented in 4.1 and it will work different.
* It makes more sense to be called CompressedTexture since it imports and compresses texture files.
2022-03-05 16:43:38 +01:00
bruvzg 12cb6386f6
Improve app name and system permission message localization.
Add localizable string (Dictionary<Lang Code, String>) property editor and property hint.
Add localized "app name" property to the project settings.
Add localized permission and copyright properties to the macOS and iOS export settings.
Remove some duplicated ("app name") and deprecated ("info") macOS and iOS export properties.
2022-03-04 18:11:31 +02:00
Rémi Verschelde 5845b1d3fd
Merge pull request #58742 from timothyqiu/x11-leak
Fix X11 memory leak after drag & drop file into the editor
2022-03-04 11:53:16 +01:00
Rémi Verschelde b21e2ec746
Merge pull request #58738 from bruvzg/mac_resize_crash
[macOS] Disable window redraw during resize, when rendering in the separate thread.
2022-03-04 11:33:53 +01:00
Haoyu Qiu 29e45d4fa0 Fix X11 memory leak after drag & drop file into the editor 2022-03-04 17:50:24 +08:00
bruvzg a9808d9d7a
[macOS] Disable window redraw during resize, when rendering in the separate thread. 2022-03-04 10:25:39 +02:00
bruvzg 5fdea69276
[macOS and iOS export] Add localized application name to the translation .plist files. 2022-03-04 09:27:44 +02:00
Sergey Minakov 15ef056997 [iOS] Fix multitouch not working correctly 2022-02-26 23:18:28 +03:00
bruvzg 74ff5921d6 Improve popup window handling.
Add window FLAG_POPUP and a platform specific routines to control popup auto-hiding and event forwarding.
2022-02-25 09:33:27 +02:00
bruvzg d39ec5b9ed [Windows] Fix borderless window flag toggle and restoring minimized borderless window. 2022-02-22 10:56:58 +02:00
Mai Lavelle dfdc1c1642 Fix deleting of directories on Linux
Trailing slash of directories was mishandled, and incorrect derived paths
were formed. Stripping the slash fixes this.
2022-02-20 08:38:59 -05:00
Sergey Minakov 8b3ac9479e [iOS] Fix incorrect method name for input dragging event 2022-02-19 16:40:49 +03:00
bruvzg 372e24265a
[Linux/X11] Fallback to the X server root window to get screen rects, if Xinerama is not available. 2022-02-18 13:29:10 +02:00
bruvzg 0c27667124 [Windows] Fix Vulkan driver crash on sub-window minimization. 2022-02-17 13:34:08 +02:00
Rémi Verschelde b8b4580448
Style: Cleanup single-line blocks, semicolons, dead code
Remove currently unused implementation of TextureBasisU, could be re-added
later on if needed and ported.
2022-02-16 14:06:29 +01:00
Rémi Verschelde c4c29728a3
i18n: Sync editor translations with Weblate
Minor proofreading of new OSX export strings.

(cherry picked from commit 9f09251027)
2022-02-16 10:08:40 +01:00
Rémi Verschelde a2e540f617
Merge pull request #58173 from akien-mga/js-build-fix-is_project_manager 2022-02-16 09:43:03 +01:00
Rémi Verschelde f9629deade
HTML5: Fix build after #52742
Fixes #58172.
2022-02-16 08:37:58 +01:00
Hugo Locurcio ee7cd9a3a1
Add an `OS.get_processor_name()` method
This method can be used to get the CPU model name.
It can be used in conjunction with
`RenderingServer.get_video_adapter_name()` and
`RenderingServer.get_video_adapter_vendor()` for annotating benchmarks
and automatic graphics quality configuration.
2022-02-15 20:55:53 +01:00
Rémi Verschelde 11572c6e30
Editor: Cleanup some includes dependencies
Removes some unnecessary includes from `editor_node.h`, and instead add
those where they're used.

Removes unnecessary `editor_node.h` includes in various editor classes.

Renames `dynamicfont` to `dynamic_font` in a couple files.

Misc cleanup while jumping through that rabbit hole.
2022-02-15 14:54:15 +01:00
Rémi Verschelde a6aba6919f
Merge pull request #58081 from tavurth/bugfix/high-macos-cpu-usage 2022-02-15 13:40:21 +01:00
Will Whitty ab5eaf0ad9 Fix new performance regressions (short delay_usec)
My Mac was using 20% cpu again, which was related to the Javascript
Export plugin.

I had however no export templates setup in the project so this is more
of a stopgap fix.
2022-02-15 14:05:19 +03:00
Rémi Verschelde f810f76890
Merge pull request #57306 from trollodel/remove_editornode_param 2022-02-14 16:40:40 +01:00
trollodel 05b56f316d Remove most EditorNode constructor parameters and fields 2022-02-14 14:16:24 +01:00
Fabio Alessandrelli f4a80f9ca7 [OSX] Codesign exporter now uses CryptoCore RNG. 2022-02-14 10:45:50 +01:00
Fabio Alessandrelli 6b5634b96a [OS/Crypto] Add get_entropy to OS.
Implemented via `BCryptGenRandom` on Windows.
Implemented via `getentropy` syscall when available.
Implemented via `/dev/urandom` device as a fallback.

The `/dev/urandom` fallback can be disabled via the `NO_URANDOM` build
flag.

Note: The HTML5 version relies on emscripten file system urandom
device which itself uses the Crypto API when available or the plain
old not crypto-safe `Math.random()` otherwise.

Restore get_entropy.
2022-02-14 10:45:50 +01:00
bruvzg 5c641372fc
[macOS] Fix macOS producing alert sound on some input actions. 2022-02-12 19:58:39 +02:00
Rémi Verschelde d3a6b6daaa
Merge pull request #56953 from bruvzg/ex_wnd 2022-02-12 16:46:55 +01:00
Hendrik Brucker b396fd4eef Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
bruvzg 7d59b81d79
Add exclusive window handling to DisplayServer (on macOS and Windows). 2022-02-12 00:14:09 +02:00
bruvzg 65426f831f [Windows] Fix drag-and-drop. 2022-02-11 09:34:55 +02:00
Fabio Alessandrelli ffe248cbdf [HTML5] Fetch API now passes credentials.
Used default value before, i.e. "same-origin", now uses "include" (i.e.
include for cross-origin if cross-origin is allowed).
2022-02-10 22:22:03 +01:00
Rémi Verschelde 1bdb82c64e
Fix typos with codespell
Using codespell 2.2-dev from current git.

Added `misc/scripts/codespell.sh` to make it easier to run it once in a
while and update the skip and ignore lists.
2022-02-10 12:30:19 +01:00
pkowal d469cfb2ab Change godot.ico to uncompressed/fixed size 2022-02-09 11:20:49 +01:00
Rémi Verschelde 5b866426fd
Merge pull request #57605 from naithar/fix/godot-view-touch-4.0 2022-02-09 11:05:26 +01:00
Rémi Verschelde 90162851a7
Core: Move generated `VERSION_HASH` to a `.cpp` file
This lets us have its definition in `core/version.h` and avoid
rebuilding a handful of files every time the commit hash changes.
2022-02-09 09:20:17 +01:00
Rémi Verschelde b480140ce1
Merge pull request #57825 from Calinou/ios-remove-obsolete-define 2022-02-09 00:27:08 +01:00
Hugo Locurcio f7529d417d
Remove obsolete define in the iOS buildsystem code
This define was used by the WebM/libvpx code, but it's now removed
in `master`.
2022-02-08 22:45:36 +01:00
Hugo Locurcio 74fc4410f4
Remove support for ARMv7 (32-bit) on iOS
All iOS devices since the iPhone 5S support ARMv8 (64-bit).

The last iOS version supported on ARMv7 devices is 10.x, which is
too old to run Godot 4.0 projects since the minimum supported
iOS version is 11.0.
2022-02-08 22:11:29 +01:00
Rémi Verschelde 592e92d938
Merge pull request #57809 from akien-mga/osx-11.00-warning 2022-02-08 17:32:49 +01:00
Rémi Verschelde d3345ef1f8
OSX: Pass `-mmacosx-version-min=11.0` instead of `11.00`
Both are recognized by Xcode and equivalent, but osxcross issues a
warning for the latter:
```
osxcross: warning: '-mmacosx-version-min=' (11.0.0 != 11.00)
```
2022-02-08 16:20:13 +01:00
Rémi Verschelde 2a39a1c221
Merge pull request #57612 from maiself/improve-gamepad-detection 2022-02-08 15:22:31 +01:00
bruvzg 720fbe3101
[macOS] Fix NO_FOCUS macOS flag. 2022-02-08 13:22:03 +02:00
Rémi Verschelde 6b13056409
Merge pull request #57794 from bruvzg/x11_fs_fix 2022-02-08 10:42:18 +01:00
bruvzg 4fcc35bdfa
[X11] Fix decoration reset when returning from fullscreen mode. 2022-02-08 11:01:24 +02:00
bruvzg 8bc837453b [Windows] Fix fullscreen mode detection on window move/resize. 2022-02-08 10:36:57 +02:00
Rémi Verschelde be1adf491a
Merge pull request #57736 from TechnicalSoup/Patch-3 2022-02-07 13:58:35 +01:00
Rémi Verschelde 1694626e03
Merge pull request #57305 from bruvzg/macos_cleanup 2022-02-07 13:36:09 +01:00
TechnicalSoup 20fb34927d Fix icons for sub windows
Modify the create_sub_window method to set an icon for all sub windows, setting the icon to the same icon as the main window.

Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
2022-02-07 23:03:10 +11:00
Fabio Alessandrelli 948e66c3d6 [HTML5] Implement JavaScript PWA update callbacks.
Allows detecting when a new version of the progressive web app service
worker is waiting (i.e. an update is pending), along a function to force
the update and reload all clients.
2022-02-06 18:53:50 +01:00
Fabio Alessandrelli cc4612277b [HTML5] PWA service worker prefers cached version.
Use an offline first approach, where we prefer the cached version over
the network one.
This forces games using PWA to always re-export the project and not just
the PCK, so that the service worker version gets updated correctly, and
the end-user cache is correctly cleared on update.
2022-02-06 18:46:22 +01:00
Rémi Verschelde 79a4d782a5
Merge pull request #57709 from jmb462/missing-sname-optimization 2022-02-06 17:03:11 +01:00
jmb462 1ce81dc5f2 Add missing SNAME macro optimization in some function calls 2022-02-06 15:54:04 +01:00
jordi 635da44ef8 Snap refresh rate to hundreths place on X11 2022-02-06 13:24:57 +01:00
Rémi Verschelde 225a3b2545
Merge pull request #57341 from bruvzg/win_multiwin_fs 2022-02-04 13:28:56 +01:00
Rémi Verschelde 2e320dcf87
Merge pull request #57617 from bruvzg/char_cleanup 2022-02-04 13:06:38 +01:00
Rémi Verschelde d235c1bb19
Merge pull request #57335 from jordigcs/display-refresh-rate 2022-02-04 11:51:07 +01:00
Rémi Verschelde 85f6151e9d
Merge pull request #54645 from rxlecky/editor-window-offset-bug-45740 2022-02-04 11:48:57 +01:00
bruvzg f4ea9cd9f3
[Windows] Add WS_BORDER flag to windows in WINDOW_MODE_FULLSCREEN mode to allow multi-window interface in full-screen.
[Windows] Add WINDOW_MODE_EXCLUSIVE_FULLSCREEN without WS_BORDER flag enabled (no multi-window support).
2022-02-04 12:08:46 +02:00
bruvzg 244db37508
Cleanup and move char functions to the `char_utils.h` header. 2022-02-04 11:35:01 +02:00
Mai Lavelle b966ca6167 Improve detection of gamepads on Linux
Some devices (Nintendo Switch Right Joy-Con) report only a right stick.
2022-02-03 22:56:43 -05:00
jordi 54dec44dba Add screen_get_refresh_rate to DisplayServer 2022-02-03 21:50:32 -06:00
Sergey Minakov eb24c91040 [iOS] Fix touch handling for overlay views
Workaround for GodotView touches being called from UIWindow on different UIView input
2022-02-03 23:52:20 +03:00
Fabio Alessandrelli 6d3d17651a Revert "[HTML5] Better engine config parsing."
This reverts commit 2f509f1b12.

Breaks closure compiler builds.
And adds a warning for future readers.
2022-02-03 19:17:51 +01:00
Rémi Verschelde c4f38813b4
Merge pull request #57577 from bruvzg/mac_export_tr 2022-02-03 15:16:46 +01:00
Rémi Verschelde e165f18ae5
Merge pull request #57350 from NeilKleistGao/master 2022-02-03 12:36:23 +01:00
NeilKleistGao 1cf2b9a44b Add warning for Windows export when rcedit is not configured 2022-02-03 16:25:00 +08:00
bruvzg 2eeff4caec
[macOS] Add empty translation files to the exported app bundle, to allow translation detection by the OS. 2022-02-03 09:56:10 +02:00
Rémi Verschelde 969780cd2d
Merge pull request #57203 from bruvzg/ios_export_fix 2022-02-02 23:14:30 +01:00
Fabio Alessandrelli 6ff753675a
Merge pull request #56771 from mhilbrunner/unacceptable
Verify custom HTTP headers, fix off by one error
2022-02-02 18:28:30 +01:00
bruvzg b84ef16aa7
[macOS] Cleanup and split Objective-C objects to the separate files 2022-02-01 16:03:04 +02:00
bruvzg 33d6d4bdf7
[macOS] Enable Objective-C ARC 2022-02-01 15:58:30 +02:00
Rémi Verschelde ea12094f19
Merge pull request #57497 from Geometror/fix-mouse-mode 2022-02-01 14:46:30 +01:00
Rémi Verschelde 5a1f42b322
Windows: Fix GCC -fpermissive error with 'pck' section workaround
Follow-up to #57450.
2022-02-01 11:33:41 +01:00
Hendrik Brucker c058361a23 Fix captured mouse mode 2022-02-01 03:49:51 +01:00
SeleckyErik d14165dae9 Simplify DisplayServerWindows pos/size message handling
Replace WM_MOVE and WM_SIZE message handling with WM_POSCHANGED instead.
This is for multiple reasons:
1) Microsoft suggest using WM_POSCHANGED is more efficient
2) RectChanged callback is only called once for most window operations
3) Simplifies message handling code
2022-01-31 18:28:48 +01:00
Rémi Verschelde f14b1441e7
Merge pull request #56548 from madmiraal/fix-53894 2022-01-31 18:08:48 +01:00
Fabio Alessandrelli 93968e1451 [HTML5] Fix gamepad samples not being properly reset. 2022-01-31 14:56:48 +01:00
Fabio Alessandrelli 2f509f1b12 [HTML5] Better engine config parsing. 2022-01-31 14:56:40 +01:00
Bartłomiej T. Listwon e4bde938a1 Prevent LTCG (MSVC LTO) from removing "pck" section 2022-01-30 16:45:28 +01:00
Nathan Franke 8a0a3accee
simplify formatting scripts, add a clang-tidy script, and run clang-tidy 2022-01-29 04:41:03 -06:00
Rémi Verschelde 83c7bf6d94
Merge pull request #57336 from bruvzg/win_con_redir 2022-01-28 15:04:09 +01:00
bruvzg 2c8511579f Fix MOUSE_MODE_CONFINED not updating area when full-screen is toggled or current screen is changed. 2022-01-28 10:15:08 +02:00
bruvzg 99a1e552ac [Windows] Disable console I/O redirection, if it's already redirected to the pipe or file. 2022-01-28 08:30:01 +02:00
Rémi Verschelde 4b36b6e92a
Merge pull request #56785 from bruvzg/nat_handles_4 2022-01-27 12:12:34 +01:00
Rémi Verschelde 203e261526
Merge pull request #57293 from mhilbrunner/windows-console-fixups 2022-01-27 11:48:53 +01:00
Max Hilbrunner 3ef5a97505 Verify custom HTTP headers, fix off by one error 2022-01-27 03:22:37 +01:00
Max Hilbrunner 9590eeebb5 Minor typo fixups to Windows console changes 2022-01-27 03:11:00 +01:00
Fredia Huya-Kouadio 6a4614ef48 Include the `godot_plugin_jni.cpp` file into the `platform/android/SCsub` file
This should resolve https://github.com/godotengine/godot/issues/57209
2022-01-26 14:50:56 -08:00
Fredia Huya-Kouadio b284dd92d3 Fix XR Android manifest metadata
- Adds the parameters for supported Meta devices, which is required to access some device specific capabilities
- Remove the 'com.samsung.android.vr.application.mode' metadata
2022-01-26 09:05:47 -08:00
bruvzg 57db989a97
[iOS] Fix iOS export with manually specified signing/provisioning data. 2022-01-25 17:13:03 +02:00
Haoyu Qiu 8be49838b3 Fix memory leak when move to trash fails on Linux 2022-01-25 18:38:13 +08:00
Rémi Verschelde 57a057f7ff
Merge pull request #56754 from madmiraal/fix-45592 2022-01-24 10:05:42 +01:00
Fabio Alessandrelli 3f93528483
Merge pull request #57074 from Faless/net/4.x_http_client_64
[Net] Fix get_response_body_length for large files.
2022-01-23 04:42:20 +01:00
Fabio Alessandrelli 18c2e734ac
Merge pull request #56977 from Calinou/web-editor-add-local-web-server
Add local web server configuration designed for web editor development
2022-01-23 04:41:32 +01:00
Fabio Alessandrelli 01e5e98312 [Net] Fix get_response_body_length for large files.
Parsing was fixed, but not the return value for the exposed getter.
2022-01-23 01:30:35 +01:00
bruvzg 3bf05c9018
[Export] Instead of removing unsupported options, hide it. 2022-01-22 22:56:58 +02:00
Omar Polo bd448e5535 Rename or refactor macros to avoid leading underscores
These are not used consistently and some can conflict with
system-specific defines.  While here, also delete some unused macros.
2022-01-20 20:29:15 +01:00
Hugo Locurcio 9ef9bfb12c
Add local web server configuration designed for web editor development
Running `npm run serve` in `platform/javascript/` will start
a web server that uses `bin/` as its root folder. This means you
can extract a compiled web editor ZIP in this folder and immediately
be able to test the web editor.

Headers required for the use of SharedArrayBuffer are automatically
added to every response.
2022-01-20 16:42:00 +01:00
Rémi Verschelde 9e0973ca23
Merge pull request #56972 from lawnjelly/warn_unused 2022-01-20 15:34:41 +01:00
lawnjelly b411a731fe Add nodiscard to core math classes to catch c++ errors.
A common source of errors is to call functions (such as round()) expecting them to work in place, but them actually being designed only to return the processed value. Not using the return value in this case in indicative of a bug, and can be flagged as a warning by using the [[nodiscard]] attribute.
2022-01-20 13:07:49 +00:00
Rémi Verschelde b6cb366884
Merge pull request #56949 from timothyqiu/has-clipboard 2022-01-20 12:09:45 +01:00
Hugo Locurcio da19898c24
Force threads when compiling web editor instead of erroring out
This makes the build process more seamless. A similar option is
already forced for initial memorywhen needed.
2022-01-19 17:07:20 +01:00
Haoyu Qiu 314f309035 Add `DisplayServer.clipboard_has()` to check clipboard content 2022-01-19 23:44:20 +08:00
Rémi Verschelde 74b110a736
Merge pull request #56825 from bruvzg/macos_fix_fullscr_multiwindow 2022-01-19 10:03:17 +01:00
Rémi Verschelde 7c771ea310
Merge pull request #47522 from madmiraal/rename-test_width-test_height 2022-01-18 13:39:57 +01:00
bruvzg d62ca0c9c0 Window management improvements.
[macOS] Fix transient windows not working in the full-screen mode.
[macOS] Fix moving transient windows to the other screen than parent window.
[macOS] Fix popup menu switch on hover.
[macOS] Use content origin rect for windows position (to ensure `DS.mouse_get_position` is equal to `DS.window_get_position` + mouse position from the input events).
[macOS] Fix incorrect input coordinates, when external display with different scaling in connected/disconnected.
[macOS/Windows] Fix moving fullscreen windows between the screens.
Add auto refocusing of the parent window, when the focused transient window is closed.
Remove redundant `DS.mouse_get_absolute_position` function (returns mouse position in the screen coordinates, same as `DS.mouse_get_position`).
2022-01-18 11:47:03 +02:00
bruvzg 8bb00a2dfd [macOS export] Implements ad-hoc signing on Linux/Windows, adds extra privacy settings, entitlements warnings and error checking. 2022-01-18 11:11:02 +02:00
Rémi Verschelde 8bdef23f7f
Merge pull request #56012 from bruvzg/wt🤎4 2022-01-17 13:26:15 +01:00
Rémi Verschelde 7176a43260
Remove property hints referencing unsupported svgz extension
The wrongly claimed support for it was removed in #49645.
See also #56862.
2022-01-17 12:40:43 +01:00
bruvzg 962d2df042
[iOS] Improve iOS icon / loading screen export.
Merge "required" / "optional" icons into a single list.
Remove "generate_missing" and automatically rescale icons / loading screens that are missing or have incorrect size.
Print warning if icon or loading screen has incorrect size.
2022-01-17 11:45:31 +02:00
Hugo Locurcio 40be15920f
Remove support for PVRTC texture encoding and decoding
On the only platform where PVRTC is supported (iOS),
ETC2 generally supersedes PVRTC in every possible way. The increased
memory usage is not really a problem thanks to modern iOS' devices
processing power being higher than its Android counterparts.
2022-01-14 21:08:22 +01:00
Rémi Verschelde 5f4e90d602
Merge pull request #56238 from madmiraal/fix-44178
Fix Actions mapped to triggers not using the full range
2022-01-14 19:59:29 +01:00
Marcel Admiraal f41c72c538 Fix Actions mapped to triggers not using the full range 2022-01-14 15:36:20 +00:00
Yuri Roubinsky 9418a2a599 Flush input events before destroying the window 2022-01-14 17:43:31 +03:00
bruvzg 89f37d4105
Add support for getting native display, window, and view handles. 2022-01-14 13:36:32 +02:00
luz paz 858bcd5058 Fix various typos
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,expct,fave,findn,gird,hist,inh,inout,leapyear,lod,nd,numer,ois,ony,paket,ro,seeked,sinc,switchs,te,uint,varn,vew`
2022-01-13 23:20:01 -05:00
Marcel Admiraal 5250cdd150 Use mouse event relative motion to calculate mouse velocity 2022-01-13 15:23:21 +00:00
Rémi Verschelde cd93bb9130
Merge pull request #56673 from winterpixelgames/bugfix-android-keystore-paths 2022-01-12 16:45:44 +01:00
Rémi Verschelde 585231a172
Merge pull request #56492 from akien-mga/remove-author-docstrings 2022-01-12 15:24:17 +01:00
Rémi Verschelde adf8af86f8
Merge pull request #56700 from bruvzg/macos_terminal_activation 2022-01-12 11:37:37 +01:00
Rémi Verschelde dc3b2e6ea2
Merge pull request #56717 from bruvzg/macos_opengl_hdr 2022-01-12 11:35:31 +01:00
bruvzg a38f56cfc3
[macOS] Fix OpenGL color space on HDR displays. 2022-01-12 10:50:17 +02:00
clayjohn 99064d57db New OpenGL batching canvas renderer 2022-01-11 22:26:18 -08:00
bruvzg 927105692f
[macOS] Improve window activation hack. 2022-01-11 23:25:12 +02:00
Rémi Verschelde 46624388d4
Merge pull request #56322 from madmiraal/fix-42450 2022-01-11 11:33:59 +01:00
Jason Knight 3e288f65bb Android export plugin passes absolute file paths to gradle for keystores. 2022-01-10 14:34:00 -06:00
bruvzg 4e2c6c1444
[macOS export] Improve code signing/notarization options validation. 2022-01-10 13:18:59 +02:00
Rémi Verschelde a489eb853d
Merge pull request #56618 from Pineapple/uwp-qpc-tweaks
UWP: Simplify QueryPerformanceCounter usage
2022-01-08 23:40:24 +01:00
Rémi Verschelde 277a159c48
Merge pull request #56497 from Pineapple/qpc-tweaks
Windows: Simplify QueryPerformanceCounter usage
2022-01-08 23:40:01 +01:00
Bartłomiej T. Listwon 24fe82da63 UWP: Simplify QueryPerformanceCounter usage 2022-01-08 13:10:27 +01:00
Rémi Verschelde 7cb0f9d079
Merge pull request #56514 from mhilbrunner/windows-missing-inputs 2022-01-07 10:29:55 +01:00
Aaron Franke 9a0e4ea550
Fix UTC typos in UWP platform 2022-01-06 10:49:48 -08:00
bruvzg c69e0d16bc
Fix multiple missing UTF-8 decoding. 2022-01-06 14:35:22 +02:00
Marcel Admiraal ac1e7e10eb Set window to focused when created 2022-01-06 08:04:59 +00:00
Rémi Verschelde 75c06289c4
Merge pull request #56517 from bruvzg/fix_export_utf8 2022-01-05 15:08:27 +01:00
Rémi Verschelde 63d9308b4b
Merge pull request #56047 from piiertho/feature/osx-sign-directory 2022-01-05 14:38:17 +01:00
bruvzg d2573c1636
Fix decoding UTF-8 filenames on unzipping. 2022-01-05 14:31:20 +02:00
Max Hilbrunner 6a6c4f2197 Windows input: Fix wrong OEM key, add missing keys 2022-01-05 12:20:47 +01:00
Bartłomiej T. Listwon 5ba38fb208 Windows: Simplify QueryPerformanceCounter usage 2022-01-05 07:40:46 +01:00
Rémi Verschelde ba2bdc478b
Style: Remove inconsistently used `@author` docstrings
Each file in Godot has had multiple contributors who co-authored it over the
years, and the information of who was the original person to create that file
is not very relevant, especially when used so inconsistently.

`git blame` is a much better way to know who initially authored or later
modified a given chunk of code, and most IDEs now have good integration to
show this information.
2022-01-04 20:42:50 +01:00
Marcel Admiraal f107139979 Rename Project Window width and height settings to match their function 2022-01-04 13:59:16 +00:00
Rémi Verschelde 1d6f8ad837
Merge pull request #56438 from madmiraal/fix-56428
Fix tablet tilt values returning bad values
2022-01-03 23:48:46 +01:00
Rémi Verschelde fe52458154
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Fredia Huya-Kouadio a8a20a0e02
Merge pull request #56132 from m4gr3d/fix_android_studio_builds
Fix Android Studio builds
2022-01-03 09:19:21 -08:00
Rémi Verschelde 5e4d1c26aa
Merge pull request #56297 from Chaosus/fix_win32_cursor_resize 2022-01-03 14:00:00 +01:00
Marcel Admiraal 75a58360fd Fix tablet tilt values returning bad values 2022-01-02 12:15:14 +00:00
luz paz a124f1effe Fix various typos
Found via ` codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,expct,fave,findn,gird,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint,varn`
Update editor/import/resource_importer_layered_texture.cpp

Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update doc/classes/TileSetScenesCollectionSource.xml

Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/gui/graph_edit.cpp

Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp

Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp

Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/resources/animation.cpp

Co-authored-by: Raul Santos <raulsntos@gmail.com>
Update scene/gui/rich_text_label.cpp

Co-authored-by: Raul Santos <raulsntos@gmail.com>
Revert previously committed change
2022-01-02 01:03:58 -05:00
Marcel Admiraal 3105d9b1f3 Rename speed to velocity when it's a directional Vector 2021-12-29 15:35:26 +00:00
Pierre-Thomas Meisels 5e0e4f209a OSX: Add signing of directory structure in Library when exporting for OSX.
OSX: Add exporting of folder structure in PlugIns when exporting for OSX.
2021-12-28 14:39:42 +01:00
Yuri Roubinsky 0f83d7272c Fix cursor stucking in resize shape 2021-12-28 13:35:07 +03:00
Aaron Franke cd6ac96bbb
Remove build system code for 32-bit iOS 2021-12-22 00:44:19 -08:00
ne0fhyk 1345e66935 Fix Android Studio builds. 2021-12-21 07:41:12 -08:00
Rémi Verschelde 51c5fa48ab
Merge pull request #56039 from Rubonnek/update-detect-prime-formatting-master 2021-12-20 10:28:16 +01:00
bruvzg ea5bb8b47d
[Windows] Improve console handling and execute/create_process.
Always build with the GUI subsystem.
Redirect stdout and stderr output to the parent process console.
Use CreateProcessW for blocking `execute` calls with piped stdout and stderr (prevent console windows for popping up when used with the GUI subsystem build, and have more consistent behavior with `create_process`).
Add `open_console` argument to the `execute` and `create_process` to open a new console window.
Remove `interface/editor/hide_console_window` editor setting.
Remove `Toggle System Console` menu option.
Remove `set_console_visible` and `is_console_visible` functions.
2021-12-18 10:14:07 +02:00
Bastiaan Olij d08b28aeb0 Fix initialising of gl_manager and checking gl_manager and context_vulkan preventing crash issues. 2021-12-18 12:21:16 +11:00
Wilson E. Alvarez 3c198aecaa
Sync detect_prime_x11.cpp formatting changes from 3.x branch 2021-12-17 16:08:13 -05:00
Rémi Verschelde 33e03386b3
Merge pull request #55966 from bruvzg/wt💩4 2021-12-16 23:05:24 +01:00
Sam Lantinga 8df0baf6f5 Fixed detecting the Valve Streaming Gamepad
Fixed the GUID, and compare the contents of the GUID, not just the pointers
2021-12-16 08:52:47 -08:00
Marcel Admiraal 6e38fc4b80 Only rotate Android sensor values for sensors that need them rotated 2021-12-15 18:15:08 +00:00
bruvzg 1fdb6a99c8
[Windows] Detect new Windows Terminal and disable unsupported set_console_visible code. 2021-12-15 20:00:57 +02:00
bruvzg 6ee48afb4e
[Windows] Open a new console window for the editor instances. 2021-12-14 14:49:58 +02:00
Aaron Franke 368c0bc0ac
Misc build system fixes 2021-12-10 12:14:27 -06:00
Rémi Verschelde bdf8340e59
Merge pull request #43181 from nathanfranke/string-empty
Replace String comparisons with "", String() to is_empty()
2021-12-10 08:56:31 +01:00
Rémi Verschelde 89b8de71c0
Merge pull request #55767 from m4gr3d/config_hand_tracking_frequency_master 2021-12-09 23:04:41 +01:00
Rémi Verschelde e3b0282080
Merge pull request #55759 from m4gr3d/enable_exclude_from_recents_master 2021-12-09 23:03:10 +01:00
Rémi Verschelde 1a2cdcbcc8
Merge pull request #55737 from m4gr3d/add_min_target_sdk_configs_master 2021-12-09 23:01:30 +01:00
ne0fhyk 862c0d06fb Add support for configuring the xr hand tracking frequency mode 2021-12-09 12:25:48 -08:00
Fredia Huya-Kouadio cfa81ff32a Enable configuration of the `android:excludeFromRecents` activity attribute. 2021-12-09 08:50:47 -08:00
Nathan Franke 49403cbfa0
Replace String comparisons with "", String() to is_empty()
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
Fredia Huya-Kouadio 2e7e6502dd Add configs to specify the min and target sdk versions. 2021-12-08 09:13:07 -08:00
Luis Sanchez 40f26cb260 Fix files_dropped in HTML5 export.
(Ignore trailing slash when creating the temporary directory)
2021-12-03 20:21:39 +01:00
Rémi Verschelde 7da392bcc5
Don't return reference on copy assignment operators
We prefer to prevent using chained assignment (`T a = b = c = T();`) as this
can lead to confusing code and subtle bugs.

According to https://en.wikipedia.org/wiki/Assignment_operator_(C%2B%2B), C++
allows any arbitrary return type, so this is standard compliant.

This could be re-assessed if/when we have an actual need for a behavior more
akin to that of the C++ STL, for now this PR simply changes a handful of
cases which were inconsistent with the rest of the codebase (`void` return
type was already the most common case prior to this commit).
2021-11-30 16:26:29 +01:00
Fabio Alessandrelli 470496d8d4 [HTML5] Fix multi-touch input handling.
The code to populate the input data for WebAssembly was incorrectly
overriding values when multiple touches were present due to wrong
indexing.
2021-11-30 11:10:21 +01:00
Rémi Verschelde 8f0c6ce726
Merge pull request #55347 from Faless/js/4.x_scons_emcc_abspath 2021-11-26 13:41:16 +01:00
Fabio Alessandrelli eaedc92c61 [HTML5] Use absolute path for JS lib/pre/externs.
Ensure better compatibility when emcc which may run some tools from
different paths (e.g. closure compiler).

This fixes externs include issues with modern emcc using the closure
compiler.
2021-11-26 12:44:51 +01:00
Yuri Roubinsky ab6e370a9e
Merge pull request #55344 from Chaosus/repair_error_func 2021-11-26 14:06:00 +03:00
Yuri Roubinsky a4b7de6b23 Fix console colors on Windows 2021-11-26 13:10:55 +03:00
Fabio Alessandrelli 63e2db2499 [HTML5] Fix focus (again) in Firefox's iframes.
This actually makes sense(?), when running inside an iframe the active
element might be our canvas, while the iframe itself is not active in
the parent window. Since we consume the event, the iframe does not get
focused in Firefox (but does in Chromium-based browsers), so we must
always call focus to handle such occasions.
2021-11-26 09:44:00 +01:00
Yuri Roubinsky 675111e480 Restore console window output for editor app on Windows 2021-11-25 22:06:45 +03:00
Lightning_A e078f970db Rename `remove()` to `remove_at()` when removing by index 2021-11-23 18:58:57 -07:00
Rémi Verschelde c038768379
Merge pull request #55159 from m4gr3d/add_oculus_openxr_config_master 2021-11-22 10:28:06 +01:00
Marcel Admiraal 2fa4c6498a Fix Android `get_screen_orientation()` not returning valid values 2021-11-21 12:05:25 +00:00
Fredia Huya-Kouadio 882ec0d611 Add support for OpenXR export configurations. 2021-11-20 06:10:44 -08:00
Fabio Alessandrelli 46fdba5f8b [HTML5] Add WebGL2 (GLES3) support using the OpenGL renderer.
Note, the editor build requires the mbedtls module to be manually
enabled, as it is currently needed as a ResourceUID dependency.

This will need to be addressed in a separate PR.
2021-11-19 16:59:27 +01:00
Rémi Verschelde fc9de5ba7f
Merge pull request #54499 from Faless/threads/4.x_work_pool_default 2021-11-19 09:39:21 +01:00
Fabio Alessandrelli 91dbc288cc [HTML5] Add checks to Gamepad API events.
In some conditions the events might be generated even when the `gamepad`
object is not accessible due to Security Context requirements.
This commit adds a check to avoid firing the handler in those cases.
2021-11-19 04:07:01 +01:00
Fabio Alessandrelli f13c7fc83e [HTML5] Fix input not focusing canvas.
mousedown and touchstart should focus the canvas to ensure correct
application lifecycle.
2021-11-19 04:06:55 +01:00
Rémi Verschelde e7216d4085
Merge pull request #55072 from KoBeWi/untitled_goose_project 2021-11-18 13:47:32 +01:00
kobewi f6d16d55c6 Fix data directory of unnamed projects 2021-11-18 12:31:29 +01:00
Rémi Verschelde 64d7df1e5f
Windows: Use `/bigobj` only for debug builds, breaks GCC LTO
Building `target=release` and `target=release_debug` builds with MinGW-GCC
errors when linking with LTO.

Since it's only needed for `target=debug` builds anyway (bigger objects), which
we don't build with LTO, this works around the issue.
2021-11-18 10:38:35 +01:00
Will Jordan 283e31a3e2 Fix crash on macOS (AS) when dualshock4 is removed 2021-11-17 15:13:53 +01:00
bruvzg c8037ef2e5 [macOS] Fix crash handler not printing function names on M1 Macs. 2021-11-16 08:45:34 +02:00
Rémi Verschelde 6715bc7754
Merge pull request #54992 from RandomShaper/drop_android_db_setting 2021-11-15 17:54:23 +01:00
Pedro J. Estébanez cab870e9d3 Drop pointless Android depth buffer setting 2021-11-15 11:02:01 +01:00
Aaron Franke 35b9263e5b
Fix typo in architecture name for x86_64 macOS 2021-11-12 20:46:08 -06:00
Aaron Franke 3c0fdcc8ac
Use "enum class" for input enums 2021-11-12 15:37:54 -06:00
Rémi Verschelde 88c4380737
Modules: Make sure to include modules_enabled.gen.h where needed 2021-11-12 13:42:58 +01:00
Rémi Verschelde 7d2900e1bd
Merge pull request #54876 from bruvzg/no_captured_move 2021-11-11 14:47:13 +01:00
bruvzg f6e449a194 Make window unmovable by dragging title bar, when mouse in captured or confined mode. 2021-11-11 14:02:08 +02:00
Rémi Verschelde 2beaae4b6f
String: Remove `erase` method, bindings can't mutate String 2021-11-11 11:23:32 +01:00
Rémi Verschelde 9b6897307c
Merge pull request #54837 from akien-mga/windows-bigobj 2021-11-10 17:48:35 +01:00
Rémi Verschelde 11d1319afd
Windows: Enable `/bigobj` to increase max size for obj files
Equivalent `-Wa,-mbig-obj` for GCC/Clang.

This started being needed to compile harfbuzz in `target=debug` with MinGW/GCC,
but there doesn't seem to be any drawback to enabling `/bigobj` (aside from
losing support for pre-VS 2005 linkers, which we don't support).
2021-11-10 16:06:39 +01:00
Rémi Verschelde b727061ce0
Windows: Fix compilation warnings with GCC 11.2.1 2021-11-10 15:13:05 +01:00
Rémi Verschelde 8a15e404b2
Merge pull request #54463 from RandomShaper/fix_gl3_32bits 2021-11-09 11:55:26 +01:00
Rémi Verschelde 43ff899fa7
Merge pull request #54315 from nekomatata/x11-key-events-log 2021-11-09 00:03:12 +01:00
bruvzg 73a774d8d1 [macOS] Use pre-wait observer to keep main run loop running and redraw window during the window resize and displaying modal popups. 2021-11-08 12:35:13 +02:00
bruvzg d0490d140b [iOS export] Capture and display xcodebuild output. 2021-11-07 11:05:05 +02:00
bruvzg c8f3dd776b [Export] Read and ZIP project files in 16K chunks instead of reading the whole file at once. 2021-11-06 18:58:03 +02:00
Rémi Verschelde bf10956b7f
Merge pull request #54601 from nekomatata/x11-struts-fix-bad-window-error 2021-11-05 10:20:09 +01:00
PouleyKetchoupp 4215d694f8 Fix BadWindow X11 errors when a window is closed while processing struts
A window can be closed on the server side while processing results from
_NET_CLIENT_LIST, which causes BadWindow fatal errors by default in
XGetWindowProperty.

The only way to safely catch this case is to set an error handler to
ignore BadWindow errors while these commands are processed.
2021-11-04 09:47:18 -07:00
Rémi Verschelde 197169b92a
Merge pull request #54591 from WoLfulus/master 2021-11-04 17:45:52 +01:00
WoLfulus 3c9d7203ea
Fix dwFlags on CreateProcessW calls 2021-11-04 09:50:45 -03:00
Fredia Huya-Kouadio bd3d99ca8a Add default `minSdkVersion` and `targetSdkVersion` in the AndroidManifest.xml file 2021-11-03 21:54:19 -07:00
bruvzg 1ad14eb14b [macOS] Add support for OpenGLES3 video driver. 2021-11-02 13:11:55 +02:00
Fabio Alessandrelli 4ed1d977fc [OS] Add ThreadWorkPool default size to OS.
Some platforms (*cough* web *cough*) have hard limits on the number of
threads that can be spawned.

Currently, ThreadPoolWork (mostly used in rendering/physics servers)
will spawn as many threads as CPUs available causing exception on
machines with high CPU count.

This commit adds a new overridable method to OS that returns the default
thread pool size (still the CPU count by default), and overrides it for
the JavaScript platform so it always allocate only one thread.

We can likely improve the whole ThreadPoolWork in the future to always
allocate X amount of threads, and assign jobs to them on the fly, but
that will require some more architectural changes.
2021-11-02 04:16:00 +01:00
Rémi Verschelde 7b83039885
Merge pull request #54490 from q66/ppc 2021-11-01 23:27:21 +01:00
Daniel Kolesa 3a84a64d2f Add support for PowerPC family 2021-11-01 22:25:53 +01:00
Hugo Locurcio 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
Rémi Verschelde a000186de4
Merge pull request #41565 from nekomatata/x11-usable-screen-size 2021-11-01 18:11:57 +01:00
Pedro J. Estébanez 07adf1193d Drop broken Android 32-bit framebuffer setting for a reliable one for depth buffer 2021-11-01 14:04:24 +01:00
bruvzg 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
Clay John 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
Hugo Locurcio 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
lawnjelly 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
PouleyKetchoupp 85a934954d Implemented screen_get_usable_rect for X11 Display Server
Helps with fixing issues with scrolling popups not respecting screen
decorations on the display server side.

Reproduction steps for a simple use case:
- Start the editor project list
- Open the language selection popup

Support for multi-screen:
Handling decorations is supported in different ways depending on the
information the window manager provides:
- _GTK_WORKAREAS is used when available from the WM to get accurate rect
for the different screens directly (available on Gnome).
- Alternatively, strut information is used to calculate available space
for a given desktop manually (XFCE, KDE).
- As last resort _NET_WORKAREA is used. It provides one full rect for all
screens, which doesn't handle decorations on the secondary screen in all
cases.
2021-10-29 11:56:08 -07:00
Max Hilbrunner 82f88f5d56
Merge pull request #54340 from aaronfranke/time-doc
Update and fix Time documentation
2021-10-29 15:49:22 +02:00
Sean Kim 753836c373 Adds support for 'use_coverage' flag in OSX.
Based on #36572 which added support for Linux
2021-10-28 15:23:23 -07:00
Rémi Verschelde 9fb9b99cab
Merge pull request #42117 from nekomatata/x11-get-window-screen
Fix window_get_current_screen for X11 display server
2021-10-28 20:57:24 +02:00
PouleyKetchoupp b34480b645 Fix window_get_current_screen for X11 display server
This method used to check which screen contains the top-left corner of
the window (and default to the first screen in case none is found),
which is not accurate in some cases.

Now the area of overlap with each screen is calculated, so we can get
the best candidate based on the window's position.

This makes window_get_current_screen consistent with Windows platform,
and fixes an issue where popups appear on the main screen when the main
window is slightly moved outside of the desktop on the top or left.
2021-10-28 10:26:05 -07:00
Aaron Franke 2dabdda36a
Update Time documentation 2021-10-28 10:16:56 -05:00
Rémi Verschelde 0ae65472e7
clang-format: Enable `BreakBeforeTernaryOperators`
clang-format keeps breaking the way it handles break *after* ternary operators,
so I give up and go with the only style they seem to actually test.
2021-10-28 15:57:41 +02:00
Rémi Verschelde 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
Rémi Verschelde 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
Rémi Verschelde d4067e661c
Merge pull request #54326 from nekomatata/x11-fix-input-delay 2021-10-28 08:57:37 +02:00
PouleyKetchoupp ba96fc6a4d Fix input events random delay on X11
The new system based on a thread gathering events from the X11 server
was causing delays in some scenarios where some events have just been
missed at the time of processing and we're waiting for a whole frame to
check them again.

Solved by flushing again and checking for pending events at the
beginning of the process loop, in addition to events already gathered
on the event thread.
2021-10-27 15:24:09 -07:00
PouleyKetchoupp 0b17d4e57d Add KeyPress & KeyRelease events to X11 debug events logging
Compiled out by default, just used for debugging local builds.
2021-10-27 10:08:09 -07:00
Rémi Verschelde 9204a3a50e
Android: Properly validate `godot_project_name_string` for Android special chars
Fixes #52659.
2021-10-26 10:01:09 +02:00
Rémi Verschelde b2ab5cb504
Merge pull request #54045 from ConteZero/primary_clipboard_linux_fix_warning 2021-10-23 19:13:34 +02:00
ConteZero 8c48b4a7e0 Fix primary clipboard warning 2021-10-23 15:50:01 +02:00
Marcel Admiraal f80cb4dffa Fix Gradle builds not excluding excluded tasks 2021-10-23 14:13:36 +01:00
Rémi Verschelde 5f7bbc2b57
JS: Bump ansi-regex version for linter
Silences warning about a moderate security vulnerability (which doesn't affect us).
2021-10-22 23:35:51 +02:00
Aaron Franke 474d0f58f5
Add support for the RISC-V architecture
Supports RV64GC (RISC-V 64-bit with general-purpose and compressed-instruction extensions)
2021-10-22 12:51:10 -05:00
Marcel Admiraal 87a4ba492e Remove unimplemented methods 2021-10-21 18:44:25 +01:00
Rémi Verschelde 8748247d6f
Merge pull request #53702 from ConteZero/primary_clipboard_linux 2021-10-20 16:35:04 +02:00
Rémi Verschelde 4387f9645b
Merge pull request #52940 from groud/toast_notification 2021-10-19 09:57:13 +02:00
ConteZero 838c9d37b4 Added primary clipboard for Linux 2021-10-18 14:01:06 +02:00
Ignacio Roldán Etcheverry 5b278ad7bc
iOS: Don't embed project static frameworks/libs
Previously, files added via `add_ios_project_static_libs` where
being added as embedded frameworks. This commit fixes that.
    
Static frameworks/libs should never be embedded into IPAs.
2021-10-17 22:38:03 +02:00
Rémi Verschelde 1efe7093be
Merge pull request #53833 from akien-mga/remove-webm-support 2021-10-15 17:33:06 +02:00
Rémi Verschelde ae74e78909
Remove WebM support (and deps libvpx and opus)
We've had many issues with WebM support and specifically the libvpx library
over the years, mostly due to its poor integration in Godot's buildsystem,
but without anyone really interested in improving this state.

With the new GDExtensions in Godot 4.0, we intend to move video decoding to
first-party extensions, and this would likely be done using something like
libvlc to expose more codecs.

Removing the `webm` module means we can remove libsimplewebm, libvpx and
opus, which we were only used for that purpose. Both libvpx and opus were
fairly complex pieces of the buildsystem, so this is a nice cleanup.

This also removes the compile-time dependency on `yasm`.

Fixes lots of compilation or non-working WebM issues which will be linked
in the PR.
2021-10-15 12:09:11 +02:00
Rémi Verschelde cd21cc683a
SCons: Set `DEBUG_ENABLED` and `DEV_ENABLED` in SConstruct
They're the same for all platforms so they don't need to be repeated in all
platform definitions.
2021-10-15 10:26:58 +02:00
K. S. Ernest (iFire) Lee 8f0c056431 Fix specific warnings issues by Clang
Found by `scons dev=yes` on llvm-mingw.
2021-10-14 14:14:26 -07:00
Marcel Admiraal 95b1275197 Upgrade Android Gradle to version 7.2 2021-10-14 16:19:00 +01:00
Gilles Roudière 0587e5e018 Implement toast notifications in the editor 2021-10-14 13:30:54 +02:00
Rémi Verschelde e2dfb656f4
SCons: Add `DEV_ENABLED` defines for `target=debug` builds
This will allow adding developer checks which will be fully compiled out in
user builds, unlike `DEBUG_ENABLED` which is included in debug tempates and
the editor builds.

This define is not used yet, but we'll soon add code that uses it, and change
some existing `DEBUG_ENABLED` checks to be performed only in dev builds.

Related to godotengine/godot-proposals#3371.
2021-10-14 12:01:28 +02:00
Mark Riedesel f0dd693a08 free dbus errors when inhibiting freedesktop screensaver (prevents small memory leak) 2021-10-12 21:11:56 -04:00
Rémi Verschelde 88463c3eee
Merge pull request #53712 from CakHuri/nullptr
Replace NULL with nullptr
2021-10-12 22:30:43 +02:00
Hugo Locurcio b1b14e5fd7
Build for 64-bit ARM by default when compiling or exporting for Android
All Android devices that support Vulkan support 64-bit ARM.

This also removes NEON opt-out code for ARMv7 as pretty much all
ARMv7 devices also support NEON.
2021-10-12 16:35:49 +02:00
M. Huri 033dc4dbef Replaced NULL with nullptr 2021-10-12 20:20:19 +07:00
Aaron Franke 7e51e4cb84
Fix some LGTM errors of "Multiplication result converted to larger type" 2021-10-12 00:17:27 -05:00
ne0fhyk 431ccdb057 Pass the correct `export_format` argument to locate the assets directory when exporting. 2021-10-11 08:24:21 -07:00
Rémi Verschelde ab9c1574d0
Merge pull request #53580 from RandomShaper/improve_cache_funcs 2021-10-09 13:40:53 +02:00
Pedro J. Estébanez 007cb5ccfb Implement get_cache_path() for iOS, and improve it for Android and Windows 2021-10-09 11:13:26 +02:00
Rémi Verschelde 1f192c43b0
Merge pull request #51429 from omar-polo/fix-basename 2021-10-09 10:34:21 +02:00
Omar Polo a3384b7461 use .get_file() instead of basename(3)
On OpenBSD the compiler complains that calling basename(3) would lose
const qualifier.  basename(3) is defined as

	char *basename(char *);

and can, accorgindly to the POSIX.1, modify the passed string.

This uses the .get_file() method.  The check is necessary because
file_name could be a directory, in which case .get_file() would return
an empty string.  The .get_base_dir().get_file() idiom is already used.

The usage of get_file() and the check were suggested by theraot, thanks!
2021-10-08 20:10:26 +02:00
kobewi 92a53f9bd6 Change dragging cursor on Windows 2021-10-06 13:13:42 +02:00
Rémi Verschelde a7ba227631
Merge pull request #52711 from m4gr3d/provide_getter_for_project_data_dir_master 2021-10-05 21:02:27 +02:00
Fabio Alessandrelli 68616edcbc [HTML5] Refactor JS library listeners to OS. 2021-10-05 14:15:07 +02:00
Fabio Alessandrelli c494e442bc [HTML5] Refactor display/input JS library code. 2021-10-05 14:15:07 +02:00
Fabio Alessandrelli 204822ed45 [HTML5] Implement Pointer Lock API in JS library.
Removes more emscripten HTML5 library dependencies.
2021-10-05 14:15:07 +02:00
Fabio Alessandrelli 7d6c1fdb32 [HTML5] Implement window blur in JS library.
Removes more emscripten HTML5 library dependencies.
2021-10-05 14:15:07 +02:00
Fabio Alessandrelli b6315afc9a [HTML5] Implement fullscreenchange in JS library.
Removes more emscripten HTML5 library dependencies.
2021-10-05 14:15:07 +02:00
Fabio Alessandrelli b2d30c725d [HTML5] Implement mouse/touch/key events in JS library.
This makes us more independent from emscripten libraries, giving us more
control on the application lifecycle.
2021-10-05 14:15:07 +02:00
Rémi Verschelde b1c6826b9f
Merge pull request #52963 from Pineapple/WIN32_LEAN_AND_MEAN_master 2021-10-05 12:03:05 +02:00
Rémi Verschelde 3479aaa369
Merge pull request #53405 from winterpixelgames/PR-more-error-logging-release 2021-10-05 08:43:07 +02:00
Jordan Schidlowsky b78d399f91 revert 0d7409a so additional error information prints in release builds 2021-10-04 16:55:01 -06:00
bruvzg 0c0b5c84b0 Implement TextServer GDExtension interface, remove TextServer GDNative interface. 2021-10-01 15:13:29 +03:00
Rémi Verschelde a7011fa294
Merge pull request #52684 from Frixuu/master 2021-10-01 11:53:01 +02:00
Lightning_A c63b18507d Use range iterators for `Map` 2021-09-30 15:09:12 -06:00
Rémi Verschelde 3a19400889
Merge pull request #48685 from bruvzg/bundle_icon_4 2021-09-30 14:55:04 +02:00
Fabio Alessandrelli e2e1a5099c
Merge pull request #52809 from selgesel/patch1
Release pressed events when the window is blurred on HTML5 platform
2021-09-29 13:09:59 +02:00
Rémi Verschelde 23b51a1708
HTML5: Fix minification error with Emscripten 1.39.9
It used an old vendored version of acorn.js which seems to choke on this
trailing comma. This is not a problem for more recent Emscripten versions.

We disable the `comma-dangle` check in ESLint to prevent this issue.
2021-09-29 09:11:11 +02:00
bruvzg 911c276a1a [macOS, sandbox] Add export option to embed and sign helper executables. 2021-09-27 11:02:56 +03:00
Hugo Locurcio 6def32d643
Replace `#pragma once` by traditional include guards for consistency
`#pragma once` was used in a few files, yet we settled on using
traditional include guards instead.

The PooledList template comment was also moved to allow editors
such as Visual Studio Code to display the comment when hovering
PooledList.

`app.h` was renamed to `app_uwp.h` to be less generic for the
include guard.
2021-09-24 02:33:15 +02:00
Selgesel 5d1d9f23de Release pressed events when the window is blurred on HTML5 platform 2021-09-23 16:44:31 +03:00
Bartłomiej T. Listwon 425ed0ffe0 Add missing WIN32_LEAN_AND_MEAN 2021-09-23 10:35:00 +02:00
Rémi Verschelde a412011be7
Merge pull request #52842 from Ev1lbl0w/fix_win_open_errcode
Fix shell_open not returning errors on Windows
2021-09-21 11:26:58 +02:00
Rémi Verschelde bd75235b8a
Merge pull request #52649 from Faless/js/4.x_audioworklet_nothreads_pr
[HTML5] Refactor audio drivers. Implement AudioWorklet w/o threads.
2021-09-21 10:44:08 +02:00
Frixuu 650e63a7ca Allow for mapping keycodes to current layout 2021-09-21 00:03:02 +02:00
Dan 131f5dbb54 Fix Windows cursor with trails disappearing in fullscreen
Fixed by turning off mouse trails when going into fullscreen, then restoring trails when exiting fullscreen or game
2021-09-19 21:42:56 -07:00
Ricardo Subtil c4787a8e6d Fix shell_open not returning errors on Windows 2021-09-19 11:29:56 +01:00
Rémi Verschelde ce0feeaf69
Merge pull request #52715 from Calinou/linuxbsd-vulkan-driver-reboot
Mention that rebooting is required after updating graphics driver on Linux
2021-09-16 10:26:39 +02:00
Rémi Verschelde a507a50d16
Merge pull request #52720 from Faless/js/4.x_fix_wheel
[HTML5] Fix wheel/touch callback modifying event after parse.
2021-09-16 09:42:04 +02:00
ne0fhyk 69f890ff11 Provide a getter for the project data directory. 2021-09-15 12:52:03 -07:00
Fabio Alessandrelli 246334b836 [HTML5] Refactor audio drivers. Implement AudioWorklet w/o threads.
Performances are not great in general, bad on Firefox, on Chrome, well,
it could be an improvement. Leave it as a fallback for now, but can be
forced via project settings if desired (or custom JavaScript logic via
the "args" option).

I'm actually surprised this works, it involves so many allocations, but
there's no way around it when SharedArrayBuffer is not available :(.
2021-09-15 20:48:49 +02:00
Fabio Alessandrelli e902347a8c
Merge pull request #52695 from Faless/js/4.x_audio_mix_rate
[HTML5] Use browser mix rate by default on the Web.
2021-09-15 20:33:42 +02:00
Fabio Alessandrelli c3f5194861 [HTML5] Fix wheel/touch callback modifying event after parse.
The events should be duplicated or reinstantiated without
assuming that parse_input will consume them immediately.
2021-09-15 20:07:28 +02:00
Hugo Locurcio 7486fa9b16
Mention that rebooting is required after updating graphics driver on Linux 2021-09-15 18:34:10 +02:00
ne0fhyk 5bbfe0b5a8 Add support for Play Asset Delivery.
This only adds support for a subset of Play Asset Delivery: this causes a single install-time asset pack to always be present, but doesn't add support for dynamically downloaded asset packs.
2021-09-15 06:06:11 -07:00
Rémi Verschelde f18a6f2fd0
Merge pull request #52696 from Faless/js/4.x_worklet_rb_bug 2021-09-15 12:54:51 +02:00
Rémi Verschelde 13d2928490
Merge pull request #52282 from Calinou/scons-improve-linuxbsd-build-messages
Improve messages when compiling for Linux/*BSD
2021-09-15 12:50:39 +02:00
Fabio Alessandrelli ba08f39e47 [HTML5] Fix bug in AudioWorklet when reading output buffer.
Would attempt an out of bounds read, causing an exception.
2021-09-15 11:58:52 +02:00
Fabio Alessandrelli d187bb4e11 [HTML5] Use browser mix rate by default on the Web.
Browsers doesn't really like forcing the mix rate, e.g. Firefox does not
allow input (microphone) if the mix rate is not the default one, Chrom*
will exhibit worse performances, etc.
2021-09-15 11:56:21 +02:00
Hugo Locurcio 065c79f0df
Re-enable building position-independent executables on Linux/*BSD
This provides better security at the cost of having misleading
binary icons on some file managers.

Now that recent Linux distributions no longer allow executing
binaries by double-clicking them in a file manager (even if the
binary is set to be executable), the usability cost of PIE is lowered.
You have to use a terminal or install a `.desktop` file nowadays.
2021-09-15 01:05:27 +02:00
Fabio Alessandrelli 76a7ee88d2
Merge pull request #52604 from Faless/js/4.x_input_fix
[HTML5] Fix input not working when buffered.
2021-09-14 11:47:40 +02:00
Fabio Alessandrelli 4c6845c095 [HTML5] Fix input not working when buffered.
After input buffering was reworked, input accumulation is now handled
outside of OS, and the JavaScript plaform never implemented that.
Additionally, the JavaScript platform is quite obnoxious about calling
specific APIs outside specific user triggered events.

This commit adds event flushing during the main iteration, and forces it
during keydown/keyup/mousedown/mouseup/touchstart/touchend/touchcanel
events (effectively only accumulating only "move" events).
2021-09-12 19:07:44 +02:00
Fabio Alessandrelli 490511fcfe [HTML5] Fix build error due to missing string cast. 2021-09-12 19:07:18 +02:00
Hugo Locurcio 1513aa9b26
Add logo attribution for Android, HTML5 and Linux platform icons
- Tweak the Android platform logo to remove the Android wordmark,
  as it can't be used without explicit permission.
2021-09-11 19:34:10 +02:00
Max Hilbrunner 7ca6a0e849 Clean DisplayServerWindows and add missing guards 2021-09-10 15:56:46 +02:00
Marcel Admiraal 23311a6ed3 Use current androidx Fragment library instead of legacy libraries 2021-09-08 10:17:26 +01:00
Juan Linietsky 58388f8cec
Merge pull request #47391 from Calinou/platform-feature-tags-lowercase
Make platform feature tag names lowercase
2021-09-07 16:30:50 -03:00
Daniel Kariv 52b114bc78 fix fullscreen issue on macOS
adds a call for resize event.
2021-09-03 14:35:28 +03:00
Fredia Huya-Kouadio ebac430445
Merge pull request #52159 from m4gr3d/addoculus_openxr_
Update the AndroidManifest to enable access to Oculus OpenXR runtime
2021-09-01 21:09:28 -07:00
PouleyKetchoupp 0b681d5834 Add support for adding plugin views behind the main view on Android
Doesn't change the default behavior, but allows plugins to add their
view behind the main view, which gives more control over what happens
with inputs and can be useful along with transparent rendering.
2021-09-01 10:01:55 -07:00
Hugo Locurcio 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
Hugo Locurcio 4c5deea83e
Improve messages when compiling for Linux/*BSD
- Don't display messages when enabling PulseAudio/ALSA/D-Bus/udev
  as these become noisy in incremental builds.
- Improve warning and error messages to be more descriptive
  and consistent.
2021-08-31 16:21:42 +02:00
Fabio Alessandrelli 7ab78c4cad
Merge pull request #49598 from Calinou/web-editor-improve-download-project-source-zip-name
Improve the generated ZIP archive name when using Download Project Source
2021-08-31 02:36:02 +02:00
Wilson E. Alvarez d11c1afc04
Rename String::is_rel_path to String::is_relative_path 2021-08-29 20:41:29 -04:00
ne0fhyk 9f4aa1f5ad Update the AndroidManifest to enable access to Oculus OpenXR runtime. 2021-08-27 11:12:25 -07:00
jmb462 59116e1995 Fix bad size after restoring a minimized window under Windows 2021-08-27 14:32:52 +02:00
Hugo Locurcio 3db8359324
Merge pull request #47829 from Calinou/improve-crash-handler-display
Improve crash handler message display
2021-08-25 08:03:10 +02:00
Max Hilbrunner ca7f53dd25
Merge pull request #52001 from floppyhammer/fix-window-decor-size-on-windows
Fix window decoration size on Windows
2021-08-24 17:28:47 +02:00
floppyhammer 1a5d72bf16 Fix window decoration size on Windows 2021-08-23 10:43:34 +08:00
Aaron Franke ae1702bee5
Replace HTTP links with HTTPS for sites with HTTPS versions 2021-08-22 20:13:11 -05:00
Michael Alexsander b4cea10771
Merge pull request #49756 from Calinou/android-export-move-clear-previous-install-setting
Move the Android "clear previous install" setting to Editor Settings
2021-08-22 23:30:13 +00:00
Marcus Brummer 47f338fc12 Check if vibration duration is > 0 on Android 2021-08-21 17:33:25 +02:00
Rémi Verschelde 16f49d4b29
HTML5: Handle GODOT_VERSION_STATUS env var in @GODOT_VERSION@
Follow-up to #51002.
2021-08-19 15:01:30 +02:00
Fredia Huya-Kouadio f4222733ca Delegate handling and implementation of the restart functionality to the Godot host. 2021-08-18 10:24:42 -07:00
Fabio Alessandrelli 71fb2429a0 [CI] Upgrade Emscripten to 2.0.27.
Update Godot Javascript FS library to manually depend on ERRNO_CODES.
2021-08-18 10:30:50 +01:00
Rémi Verschelde be80d381d2
Merge pull request #50360 from m4gr3d/address_external_dir_access_master
Add support for Android scoped storage
2021-08-17 13:33:28 +02:00
ne0fhyk 3a00ff1cce Add partial support for Android scoped storage.
This is done by providing API access to app specific directories which don't have any limitations and allows us to bump the target sdk version to 30.
In addition, we're also bumping the min sdk version to 19 as version 18 is no longer supported by Google Play Services and only account of 0.3% of Android devices.
2021-08-16 23:11:56 -07:00
ModProg d9e24b72f7 [android] Fixed wrong button mask for right click 2021-08-16 18:49:12 +02:00
Hugo Locurcio 719ff68fdd
Improve the generated ZIP archive name when using Download Project Source
This makes for easier organization since downloading a project
several times (or several different projects) will result in more
meaningful file names.
2021-08-16 18:33:03 +02:00
Rémi Verschelde 1057a107e0
Merge pull request #51116 from Calinou/macos-fix-xbox-bluetooth-controllers
Fix Xbox controllers in Bluetooth mode on macOS
2021-08-16 17:50:10 +02:00
Hugo Locurcio 91a5ff9dc3
Fix Xbox controllers in Bluetooth mode on macOS
This prevents the D-pad up arrow from being registered as pressed
when it isn't, and pressing any direction from activating the next
arrow clockwise of it.

Co-authored-by: Scott Wadden <scott.wadden@gmail.com>
2021-08-16 17:06:05 +02:00
Hugo Locurcio 2cdace1749
Move the Android "clear previous install" setting to Editor Settings
This means the setting now applies to every project deployed from
the editor, rather than being per-export preset.
2021-08-16 05:59:48 +02:00
Rémi Verschelde 1833c8b233
Merge pull request #51587 from Calinou/use-unicode-multiplication-symbol
Use the Unicode multiplication symbol where relevant
2021-08-13 14:27:48 +02:00
Pedro J. Estébanez e745088f1f Switch to input buffering on Android
Key, touch and joystick events will be passed directly from the UI thread to Godot, so they can benefit from agile input flushing.

As another consequence of this new way of passing events, less Java object are created at runtime (`Runnable`), which is good since the garbage collector needs to run less.

`AndroidInputHandler` is introduced to have a smaller cross-thread surface. `main_loop_request_go_back()` is removed in favor just inline calling `send_window_event()` at the most caller's convenience (i.e., leveraging the new `p_deferred`` parameter as appropriate).

Lastly, `get_mouse_position()` and `get_mouse_button_state()` now just call through `Input` to avoid the need of sync of mouse data tracked on the UI thread.
2021-08-13 11:45:50 +02:00
Pedro J. Estébanez 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
Pedro J. Estébanez 7c864d41c9 Improve input event accumulation
- API has been simplified: all events now go through `parse_input_event()`. Whether they are accumulated or not depends on the `use_accumulated_input` flag.
- Event accumulation is now thread-safe (it was not needed so far, but it prepares the ground for the following changes).
- Touch drag events now support accumulation.
2021-08-13 11:19:19 +02:00
Rémi Verschelde af70288ee0
Merge pull request #51586 from m4gr3d/investigate_godot_resume_stalls_master
Resolve issue where the Godot app remains stuck when resuming.
2021-08-13 08:43:59 +02:00
Rémi Verschelde 4c53669d8a
Merge pull request #51524 from RandomShaper/faster_vma
Upgrade Vulkan Memory Allocator, use Volk on Android
2021-08-13 08:42:58 +02:00
Fredia Huya-Kouadio e73e336e3b Add support for prompting the user to retain app data on uninstall.
Supported on Android 10 and higher.
2021-08-12 22:16:14 -07:00
Fredia Huya-Kouadio 28a99e4cf6 Resolve issue where the Godot app remains stuck when resuming.
This was caused by the fact that a new instance of Godot was created at resume while a previous instance already existed.
The previous instance would then go through its cleanup lifecycle, and would thus attempt to close the entire app, leading to the system to restart the app, thus starting the cycle anew.
The fix involves reusing the previous instance of Godot if one is available instead of creating a new one, as well as giving control to the host activity for how the process should be terminated.
2021-08-12 21:05:18 -07:00
Pedro J. Estébanez 7b7e17a626 Upgrade Vulkan memory allocator 2021-08-13 00:05:41 +02:00
Rémi Verschelde 554312a3b2
Android: Use volk instead of NDK Vulkan headers
We no longer build the Vulkan loader, and volk lets us load it dynamically.
Roblox uses volk on Android so it should work well for us too.
2021-08-12 23:39:30 +02:00
Hugo Locurcio 7612cff432
Use the Unicode multiplication symbol where relevant 2021-08-12 21:45:33 +02:00
Rémi Verschelde 6f043f7a19
Merge pull request #50771 from naithar/feature/platform-export-refactoring-4.0 2021-08-12 17:22:43 +02:00
Sergey Minakov 253581f85c Split uwp platform export template into multiple files 2021-08-12 17:18:37 +03:00
Sergey Minakov 9f49255bee Split javascript export template into multiple files 2021-08-12 17:18:36 +03:00
Sergey Minakov 6627f18e0f Split windows platform export template into multiple files 2021-08-12 17:18:36 +03:00
Sergey Minakov d18dc7f41c Split osx platform export template into multiple files 2021-08-12 17:18:34 +03:00
Sergey Minakov ed49e038ec Split android platform export template into multiple files 2021-08-12 17:15:02 +03:00
Sergey Minakov 968b712a97 Split iphone platform export template into multiple files 2021-08-12 16:56:17 +03:00
Marcus Brummer 20b3e2cc94 Properly finishes Godot's Android activity when destroyed by the system 2021-08-12 15:33:51 +02:00
bruvzg 133f678f85 Remove unnecessary iOS linker flags. 2021-08-12 14:25:16 +03:00
bruvzg d7957a2a20 Use "volk" instead of statically linked Vulkan loader. 2021-08-12 14:25:15 +03:00
Aaron Franke fa3a32a2d6
Use Key enum instead of plain integers 2021-08-10 16:26:55 -05:00
bruvzg ae7dbb678c [macOS] Move captured mouse cursor to the center when window gain focus. 2021-08-08 22:27:57 +03:00
Sergey Minakov ae91e372d1 [iOS] Use platform generated api to initialize iOS plugins 2021-08-06 23:28:37 +03:00
Georg Wacker 63ba15a518 Fix vertical scroll/zoom for precision touchpad
Adds factor data for vertical mousewheel event, in line with horizontal mousewheel event
2021-08-06 15:06:11 +02:00
Haoyu Qiu 1d5332069b Make progress and errors translatable when exporting to Android 2021-08-01 17:16:16 +08:00
Rémi Verschelde c191cfbddf
Windows: Fix build with SCons 4.2.0 2021-08-01 10:08:20 +02:00
Fredia Huya-Kouadio ace6df6947 Fix custom build export 2021-07-27 09:15:45 -07:00
vitika9 1add8b3172 Removed Redundant assignement of name inside configure_joypad function 2021-07-27 14:51:42 +05:30
Rémi Verschelde 438be4422f
Merge pull request #50878 from bruvzg/debug_entitlement
[macOS] Add "debugging" (`get-task-allow`) to the export options.
2021-07-26 10:52:09 +02:00
bruvzg 2dd6c3eb09 [macOS] Add "debugging" (`get-task-allow`) to the export options, to allow using native debugger. 2021-07-26 11:28:52 +03:00
luz paz 2e0044c93d Remove unnecessary 'pass' statement
ref: https://lgtm.com/projects/g/godotengine/godot/?mode=tree&ruleFocus=910088
2021-07-25 11:56:24 -04:00
luz paz 3564c16cb8
Fix various typos with codespell
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25 11:21:51 +02:00
Aaron Franke 4e6efd1b07
Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
bruvzg 618eb27e8b Move `alert` function from `DisplayServer` to `OS`. 2021-07-22 21:50:35 +03:00
bruvzg 53f84e39fd Fix MoltenVK static linking on macOS (add missing include path, Vulkan SDK path option, use xcframework instead of static framework). 2021-07-22 16:29:24 +03:00
Rémi Verschelde ab732fe3eb
Merge pull request #50712 from nekomatata/x11-popup-focus-fix
Fix popup closing immediately after showing on some Linux WMs
2021-07-22 09:27:48 +02:00
PouleyKetchoupp e030360b88 Fix popup closing immediately after showing on some Linux WMs
When a popup is going to be closed, switch focus to the parent only if
the popup is still being focused.

Fixes some cases with specific WMs where due to the order of events, a
new popup could be immediately unfocused because a previously opened
and closed popup is switching focus to the parent.
2021-07-21 12:28:39 -07:00
ne0fhyk fa587778d8 Disable resource optimizations for release builds as it breaks the legacy build system. 2021-07-20 16:44:04 -07:00
Rémi Verschelde b4baec08cf
Merge pull request #50206 from groud/undoredo_increase_args_count
Increase the number of arguments accepted by UndoRedo methods
2021-07-20 09:50:01 +02:00
reduz 6631f66c2a Optimize StringName usage
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.

This is part of ongoing work to optimize GUI and the editor.
2021-07-18 21:20:02 -03:00
Hendrik Brucker 38578a8095 Modernize Display server to use override keyword 2021-07-16 21:39:13 +02:00
Rémi Verschelde 296b713ee8
Merge pull request #50481 from reduz/install-android-build-sources
Added ability to load Android build sources from file.
2021-07-15 18:22:26 +02:00
Fabio Alessandrelli 7431586286 [HTML5] Make threads build the default.
Non-threads build are broken anyway.
2021-07-15 15:33:39 +02:00
reduz 6639cc9853 Addes ability to load build sources from file.
* If not present, the dialog asks to load build sources from a file.
* The export templates check now also verifies that build sources are installed and skips the template check.

This makes Android development easier.
2021-07-15 10:14:08 -03:00
Fabio Alessandrelli 3d8acc7a54 [HTML5] Fix build (with module_webxr_enabled=no).
The XR API changed a bit, and it's not just a rename, though probably an
easy update for someone who is qualified :).
2021-07-15 14:37:21 +02:00
Rémi Verschelde 06568bbfdf
Misc cleanup of header includes
Was looking for misuse of module headers without checking that the module is
actually enabled and got carried away...
2021-07-15 00:46:43 +02:00
Rémi Verschelde dcabc27337
Merge pull request #50409 from godot-joe/fix-ambiguous-variant-on-debian-10-build
Fixes ambiguous variant error for build on Debian 10 (Buster) using clang v7
2021-07-14 14:58:36 +02:00
Sergey Minakov aa321f0a24 [iOS] Fix plugin configuration loading
Clear ConfigFile parameter before loading new file.
Ignore duplicate input plist keys
2021-07-13 21:30:19 +03:00
Rémi Verschelde 681b1bb306
Merge pull request #50422 from Faless/js/4.x_memory_initial_32
[HTML5] Raise default initial memory to 32 MiB.
2021-07-13 17:02:22 +02:00
Rémi Verschelde a4af76077a
Merge pull request #50418 from Calinou/fix-to-stop-word-casing
Fix casing of the "to" stop word in editor strings
2021-07-13 16:26:21 +02:00
Fabio Alessandrelli 897c906ebf [HTML5] Raise default initial memory to 32 MiB.
The memory was resized in any case during start.

Mitigate Chromium issue:
https://bugs.chromium.org/p/v8/issues/detail?id=11863

Also fix a warning about SAFE_HEAP being a linker only flag.
2021-07-13 15:51:00 +02:00
Hugo Locurcio a3fbd68781
Fix casing of the "to" stop word in editor strings
This also fixes a C# documentation example that had one of its
strings incorrectly converted.
2021-07-13 15:29:06 +02:00
reduz 5ad4f26659 Implement the ability to disable classes
* This PR adds the ability to disable classes when building.
* For now it's only possible to do this via command like:
  `scons disable_classes=RayCast2D,Area3D`
* Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.
2021-07-13 09:25:14 -03:00
joe b627fcd2cd Fix for ambiguous variant error during build on Debian 10(Buster) using clang v7 2021-07-13 03:44:03 +01:00
Hugo Locurcio a2d5f191d8
Merge pull request #48622 from Geometror/reimplement-disableable-vsync 2021-07-10 01:02:23 +02:00
bruvzg f37981b83f [macOS, Mono] Automatically enable JIT entitlements for the Mono exports. 2021-07-09 22:47:43 +03:00
likeich 0314e04939 Fix linux use after free
Fixes #50032
2021-07-08 22:34:07 -04:00
Fabio Alessandrelli d4e302a3a4 [HTML5] Fix JavaScript string parsing with new interface.
Strings are UTF-8 encoded and should be parsed as such, while it was
being parsed as a C string before.
2021-07-07 15:44:29 +02:00
Rémi Verschelde 5d7c23dcc6
Merge pull request #50220 from madmiraal/fix-50125
Queue the calls to GodotLib.key when Android virtual done is pressed
2021-07-06 23:46:21 +02:00
Gilles Roudière 2f9a0268dd Increase the number of arguments accepted by UndoRedo methods 2021-07-06 18:52:28 +02:00
Marcel Admiraal 57317ce7b8 Remove Android onKeyMultiple override 2021-07-06 17:39:42 +01:00
Marcel Admiraal 1856f16378 Queue the calls to GodotLib.key when Android virtual done is pressed 2021-07-06 17:32:09 +01:00
Rémi Verschelde c47b6f4b5c
Merge pull request #50107 from madmiraal/android-use-lambdas
Replace single method anonymous classes with lambdas in Godot Java code
2021-07-06 18:10:38 +02:00
Hendrik Brucker 043ae91560 Restructure and reimplement vsync options
-Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX
-Removed the V-Sync via Compositor option
2021-07-06 16:34:26 +02:00
Rémi Verschelde 7931ebb7bb
Merge pull request #39139 from ThakeeNathees/windows-err-to-stderr
Windows error logs directed to stderr
2021-07-06 12:14:29 +02:00
Rémi Verschelde f2d8bad2d1
Merge pull request #50109 from madmiraal/android-static-inner-classes
Use static inner classes in Godot Java code
2021-07-05 14:18:26 +02:00
miere43 119a59f872 Replace backslash with forward slash in OS_Windows path methods 2021-07-04 09:04:21 +03:00
Marcel Admiraal 23e152040b Use static inner classes in Godot Java code 2021-07-03 05:50:04 +01:00
Marcel Admiraal a7825ca12a Replace single method anonymous classes with lambdas in Godot Java code 2021-07-03 05:13:31 +01:00
Rémi Verschelde f2229bb1ea
Merge pull request #50085 from madmiraal/android-replace-stringbuffer
Use StringBuilder instead StringBuffer in Godot Java code
2021-07-02 22:09:50 +02:00
Rémi Verschelde aee59c3547
Merge pull request #50083 from madmiraal/android-fix-raw-use
Fix raw use of parameterized Class
2021-07-02 22:09:39 +02:00
Marcel Admiraal 3f95bbed73 Remove redundant explicit types in Godot Java code 2021-07-02 17:45:30 +01:00
Marcel Admiraal 61ee51d2bf Use StringBuilder instead StringBuffer in Godot Java code 2021-07-02 16:57:12 +01:00
Rémi Verschelde 710effdaad
Merge pull request #50078 from madmiraal/android-remove-unused-imports 2021-07-02 17:45:29 +02:00
Marcel Admiraal d237f7d33d Fix raw use of parameterized Class 2021-07-02 16:35:52 +01:00
thebestnom e200195564 Android: Initialize mouse mode 2021-07-02 18:00:33 +03:00
Marcel Admiraal a38fd4a4c2 Remove unused imports from Android Java code 2021-07-02 12:57:55 +01:00
Rémi Verschelde 6ef0b8fcd3
Merge pull request #50074 from madmiraal/android-replace-c-array
Use Java array declarations not C-style declarations in Android Java code
2021-07-02 13:44:22 +02:00
Rémi Verschelde 42184dd6d5
Merge pull request #50072 from madmiraal/android-remove-interface-modifiers
Remove redundant interface modifiers from Android Java code
2021-07-02 12:35:14 +02:00
Marcel Admiraal 721b3d56c5 Use Java array declarations not C-style declarations in Android Java code 2021-07-02 11:09:09 +01:00
Marcel Admiraal a74e803a4f Remove redundant interface modifiers from Android Java code 2021-07-02 09:37:45 +01:00
Marcel Admiraal 360447001d Remove unnecessary semicolons from Android Java code 2021-07-02 08:54:09 +01:00
Rémi Verschelde 40a594c6ea
Android: Add `isGame` application attribute, default to true
It can be turned off in the export preset with `package/classify_as_game`.

Upstream definition: https://developer.android.com/guide/topics/manifest/application-element#isGame

> `android:isGame`
>
> Whether or not the application is a game. The system may group together
> applications classifed as games or display them separately from other
> applications.

Also fixes replacing `android:allowBackup` in custom builds.
2021-07-01 11:00:23 +02:00
Marcel Admiraal 8270e101a7 Fix unchecked call to put() warning in GodotInputHandler.java 2021-06-30 12:13:05 +01:00
Rémi Verschelde 52e3f986ac
Merge pull request #49911 from madmiraal/fix-49878
Add GDNative libraries to Android custom Gradle builds
2021-06-29 14:58:23 +02:00
Rémi Verschelde 871a338376
Merge pull request #49910 from Faless/js/4.x_canvas_resize
[HTML5] Add option to focus canvas on start.
2021-06-29 12:40:25 +02:00
Marcel Admiraal 7b63f0a22d Add GDNative libraries to Android custom Gradle builds 2021-06-29 09:26:28 +01:00
bruvzg 8f7c2ccefd [Windows Export] Use temporary file for osslsigncode signing. 2021-06-29 10:38:28 +03:00
Rémi Verschelde a738ddb9a4
Merge pull request #35536 from shroudedcode/keep-screen-on-linux
Make "Keep screen on" work on Linux
2021-06-27 19:33:23 +02:00
Fabio Alessandrelli c12fca57f4 [HTML5] Add option to focus canvas on start.
Enabled by default.
2021-06-25 19:07:17 +02:00
Fabio Alessandrelli fdccc0b219
Merge pull request #49889 from timothyqiu/url-path
Strip query string when parsing HTTP request line for path
2021-06-24 23:52:53 +02:00
Haoyu Qiu 91477cd4a9 Strip query string when parsing HTTP request line for path 2021-06-25 00:20:28 +08:00
ne0fhyk d1a9363c4c Update config versions and deprecate the use of the jcenter maven repo. 2021-06-24 08:58:56 -07:00
Rémi Verschelde e55be041d8
Merge pull request #49833 from m4gr3d/add_support_for_custom_debug_keystore_master
Add support for custom debug keystore
2021-06-23 15:28:25 +02:00
Fabio Alessandrelli b00c4a4360 [Net] Makes HTTPClient a custom instance class. 2021-06-23 14:10:45 +02:00
Fabio Alessandrelli 421e771012 [Net] Unify HTTPClient request and request_raw. 2021-06-23 13:53:43 +02:00
bruvzg f7797bf1b3 [macOS] Fix custom mouse cursor not set after mouse mode change. 2021-06-23 10:51:01 +03:00
ne0fhyk 532b0e3462 Add support for custom debug keystore. 2021-06-22 10:05:55 -07:00
Rémi Verschelde 277db14b64
Merge pull request #49803 from naithar/feature/ios-plugin-multitype-plist-4.0
[4.0] [iOS] Support multiple `plist` types in plugin
2021-06-22 12:48:55 +02:00
Sergey Minakov 771e3aae1e [iOS] Support multiple plist types 2021-06-21 18:17:41 +03:00
Niklas Higi 0c83a23ab5
Add "Keep screen on" feature to `DisplayServerX11` 2021-06-20 21:57:33 +02:00
Aaron Franke 0ce49800ac
Use mouse and joypad enums instead of plain integers
Also MIDIMessage
2021-06-20 11:54:24 -04:00
Aaron Franke e919d894f8
Move many input enums to their own file 2021-06-20 11:53:01 -04:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Rémi Verschelde d88be9b70c
Merge pull request #44806 from madmiraal/consolidate_json
Consolidate JSON, JSONParseResults and JSONParser into JSON
2021-06-19 21:45:34 +02:00
Marcel Admiraal de2acbd495 Add adb output to error message when install fails 2021-06-19 17:46:57 +01:00
Marcel Admiraal 2bafcd3422 Consolidate JSON, JSONParseResults and JSONParser into JSON
Renames JSON.parse_string() to parse()
Renames JSON.decode_data() to stringify()
2021-06-19 08:01:40 +01:00
Fabio Alessandrelli ad5bdaf5aa [HTML5] JS callback functions now returns passed value.
JavaScript callbacks created via the `JavaScript.create_callback` method
used to always return void.

With this patch they return the value returned by the Godot function as
one would expect.
2021-06-18 17:47:48 +02:00
Hugo Locurcio 8556dd1bef
Improve crash handler message display
- State the Godot version and full hash in the backtrace.
- Add decoration around the crash backtrace, both to make it stand out
  from other messages and help the user figure out what they should copy.
2021-06-17 20:05:16 +02:00
Gromph c87e49d7bc
UWP: Keep upstream names for capabilities preset settings to avoid mismatch
The previous code used `camelcase_to_underscore` to prettify the names for
display in the export preset, but it leads to inconsistencies if we don't make
sure to do the reverse operation when writing to the `AppxManifest.xml`.

It's simpler to keep the same names as in the manifest, which is also what
users will see referenced in MS documentation.

Fixes #47900.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-06-17 12:59:17 +02:00
Rémi Verschelde 91d6382786
Merge pull request #49594 from bruvzg/macos_app_category
Add LSApplicationCategoryType to the template and export dialog.
2021-06-15 14:53:42 +02:00
Rémi Verschelde 88e671e0b7
Merge pull request #49592 from Faless/js/4.x_fix_sigs
[HTML5] Fix build without eval, library functions signatures.
2021-06-15 00:01:54 +02:00
Fabio Alessandrelli a1cbb6daa6 [HTML5] Update eslint and jsdoc dependencies. 2021-06-14 13:42:03 +02:00
bruvzg cb480376d8 Add LSApplicationCategoryType to the template and export dialog. 2021-06-14 14:28:34 +03:00
Fabio Alessandrelli 049b5159f1 [HTML5] Fix JS build without eval.
Also fix download_buffer return type.
2021-06-14 12:32:53 +02:00
Fabio Alessandrelli 9b7b0a28b9 [HTML5] Fix some JS library signature. 2021-06-14 12:32:32 +02:00
Rémi Verschelde ac73059b56
Merge pull request #49123 from aaronfranke/it-is-time
Add a Time singleton
2021-06-12 22:55:25 +02:00
Pedro J. Estébanez 04688b92ff Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
Rémi Verschelde 8d4046929c
Merge pull request #49511 from akien-mga/core-diraccess-fileaccess-io
Core: Move DirAccess and FileAccess to `core/io`
2021-06-11 16:51:10 +02:00
Rémi Verschelde 6b0183ec89
Merge pull request #49279 from Calinou/rename-string-is-abs-path-method
Rename `String.is_abs_path()` to `String.is_absolute_path()`
2021-06-11 15:58:16 +02:00
Aaron Franke f64fea1b23
Add Time singleton 2021-06-11 09:32:39 -04:00
Rémi Verschelde 9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Rémi Verschelde bc1fcb9c65
Merge pull request #49435 from madmiraal/add-android-external-dir
Add OS.get_external_data_dir() to get Android external directory
2021-06-10 22:11:02 +02:00
Marcel Admiraal b3a962945e Add OS.get_external_data_dir() to get Android external directory 2021-06-10 16:48:17 +01:00
Marcel Admiraal 4ba2ed332e Remove unused AudioDriverAndroid from Android 2021-06-10 08:32:56 +01:00
Arthur Bikmullin ee2bea7a86
Fixed missed IDHandler dependency in GodotFetch 2021-06-08 00:20:24 +02:00
Rémi Verschelde d567abd714
Merge pull request #49382 from akien-mga/misc-cleanup
Style: Cleanup uses of double spaces between words
2021-06-07 11:57:47 +02:00
Rémi Verschelde c1c76850cb
Style: Cleanup uses of double spaces between words
Or after punctuation. Tried to leave third-party stuff alone, unless it has
been heavily modified for Godot.
2021-06-07 11:03:08 +02:00
Marcel Admiraal 78e791045c Update Gradle archiveName and destinationDir properties 2021-06-07 06:41:10 +01:00
Marcel Admiraal 8acd13a456 Rename Quat to Quaternion 2021-06-04 18:14:32 +01:00
Rémi Verschelde 5d9cab3aeb
Merge pull request #38430 from aaronfranke/transform3d 2021-06-03 23:07:21 +02:00
Aaron Franke 98aa3b669e
Add MOUSE_MODE_CONFINED_HIDDEN
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-06-03 11:44:28 -04:00
Hugo Locurcio 5ea1c75d63
Rename `String.is_abs_path()` to `String.is_absolute_path()`
This is more consistent with `NodePath.is_absolute()`.
2021-06-03 16:00:06 +02:00
Aaron Franke 08a85352fb
Rename Variant TRANSFORM to TRANSFORM3D
Also _transform to _transform3d
2021-06-03 07:30:01 -04:00
Hendrik Brucker 6abd842a5a Fixed window_can_draw of DisplayServerWindows 2021-06-02 12:51:36 +02:00
Fabio Alessandrelli 8cdef21d6c Move remaining dummy drivers to servers. 2021-06-01 16:50:32 +02:00
Fabio Alessandrelli 8594613f94 LinuxBSD now compiles without vulkan/x11. 2021-06-01 16:27:54 +02:00
Fabio Alessandrelli ae04dac2db Remove server platform 2021-06-01 16:27:54 +02:00
Rémi Verschelde af3ee1c860
Merge pull request #48963 from HaywardMorihara/export-android-keystore-debug-warnings
Exporting -> Android: Keystore Warnings
2021-06-01 15:22:05 +02:00
Rémi Verschelde 596eb783fe
Merge pull request #49050 from reduz/implement-spirv-cache
Implement shader caching
2021-05-31 11:02:19 +02:00
Rémi Verschelde f7bcada709
Merge pull request #49137 from RandomShaper/ios_targeted_family
Add iOS export option for device family
2021-05-31 10:34:49 +02:00
reduz 0d2e02945b Implement shader caching
* Shader compilation is now cached. Subsequent loads take less than a millisecond.
* Improved game, editor and project manager startup time.
* Editor uses .godot/shader_cache to store shaders.
* Game uses user://shader_cache
* Project manager uses $config_dir/shader_cache
* Options to tweak shader caching in project settings.
* Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled).
* Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated).
* Added shader compression with SMOLV: https://github.com/aras-p/smol-v
2021-05-31 10:13:09 +02:00
Pedro J. Estébanez 19ae8193ee Add iOS export option for device family 2021-05-27 11:46:22 +02:00
Rémi Verschelde ae5735af60
Merge pull request #49069 from RandomShaper/android_data_backup
Allow basic user data backup on Android
2021-05-25 18:06:46 +02:00
Rémi Verschelde 72a7ddaddc
Merge pull request #48422 from szymonm-google/android_orientation_fix
Fixed changing screen orientation on Android
2021-05-25 18:06:00 +02:00
Pedro J. Estébanez 1179421068 Allow basic user data backup on Android 2021-05-25 17:47:32 +02:00
Rémi Verschelde 6b6a351aa1
Merge pull request #49064 from RandomShaper/default_config_xcode
Set schemes' build config to debug/release in iOS Xcode export
2021-05-25 17:46:38 +02:00
Marcel Admiraal da5d7db610 Rename File::get_len() get_length() 2021-05-25 11:54:28 +01:00
Rémi Verschelde 9bc2ba3b64
Merge pull request #48955 from Calinou/editor-tweak-property-hints
Tweak dozens of editor property hints for consistency
2021-05-25 11:44:43 +02:00
Pedro J. Estébanez 1534b4e65e Set schemes' build config to debug/release in iOS Xcode export 2021-05-25 10:26:54 +02:00
Hugo Locurcio 87f503310b
Tweak dozens of editor property hints for consistency
- Update Viewport MSAA property hints to match the currently
  exposed values.
- Add some performance hints to property hints.
2021-05-25 02:50:35 +02:00
Szymon Majewski 5634093703 Fixed screen orientation on Android 2021-05-24 16:58:35 -07:00
Nathaniel Morihara 2cf19293ba Exporting: Android Debug Keystore Warnings 2021-05-24 19:48:29 -04:00
Rémi Verschelde af03e9c830
Merge pull request #48939 from Calinou/screen-orientation-use-enum
Use an enum to represent screen orientation in the Project Settings
2021-05-24 19:53:19 +02:00
Hugo Locurcio 660952a857
Use an enum to represent screen orientation in the Project Settings
- Tweak the setting property hint to be more informative.
- Make the setting a "basic" setting so it appears when Advanced Settings
  is disabled.
- Remove redundant orientation setting in the iOS export preset.
  The project setting is now used (like on Android).

Projects upgrading from a previous version will have to set the
screen orientation again in the Project Settings if it wasn't set
to the default value ("landscape").
2021-05-24 18:53:10 +02:00
Rémi Verschelde 65eff1cfdd
Merge pull request #46866 from bruvzg/symlinks_and_macos_gdn_framework_export_4 2021-05-24 15:14:02 +02:00
bruvzg a1cb6f07a1
Add GDNative Framework loading and export support. 2021-05-24 12:49:05 +03:00
bruvzg d14eae141e
[macOS] Allow "on top" windows to enter full-screen mode. 2021-05-24 10:53:01 +03:00
Rémi Verschelde 43e843ac98
Merge pull request #48940 from omar-polo/add-openbsd
add OpenBSD to OS_LinuxBSD::get_name()
2021-05-22 18:35:42 +02:00
bruvzg 139a9d6370
Add symlink API to the DirAccess (on macOS and Linux). 2021-05-22 17:33:34 +03:00
bruvzg 494c54b98c
[UWP] Add missing `get_scansym` argument. 2021-05-22 16:39:31 +03:00
Omar Polo 3bff838cee add OpenBSD to OS_LinuxBSD::get_name() 2021-05-21 21:35:31 +02:00
Rémi Verschelde 2687ac2720
Merge pull request #48922 from akien-mga/os-xdg-dedup-code
OS: Remove code duplicate in XDG paths handling
2021-05-21 19:04:48 +02:00
Rémi Verschelde 2362a59a11
Merge pull request #48928 from Faless/js/4.x_fix_build_after_rename
[HTML5] Fix build after KEY_CTRL rename.
2021-05-21 18:33:15 +02:00
Fabio Alessandrelli 923131ec28 [HTML5] Fix build after KEY_CTRL rename. 2021-05-21 15:53:23 +02:00
Fabio Alessandrelli fdf66a21f1 [HTML5] Add easy to use download API.
New `JavaScript.download_buffer` method to create a prompt that let the
user download a file.
2021-05-21 15:31:23 +02:00
Rémi Verschelde 0e1d45b210
OS: Remove code duplicate in XDG paths handling
Follow-up to #48542.
2021-05-21 12:49:09 +02:00
Hugo Locurcio 011a99316a
Only allow absolute paths in XDG environment variables
The XDG Base Directory specification does not allow using relative paths
(which broke things in Godot anyway). If a relative path is detected,
it should be ignored.
2021-05-20 18:37:28 +02:00
Rémi Verschelde aa5552278d
Merge pull request #48719 from Faless/js/4.x_interfaces
[HTML5] Implement Godot <-> JavaScript interface.
2021-05-20 17:13:02 +02:00
Fabio Alessandrelli 9811035ebf [HTML5] Implement Godot <-> JavaScript interface. 2021-05-20 14:33:18 +02:00
Rémi Verschelde 4219a4cb6f
Fix typos with codespell
Using codespell 2.0.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2021-05-20 12:38:56 +02:00
thebestnom f5b5e00a01 Android: Add support for cursor icons 2021-05-19 22:01:51 +03:00
Rémi Verschelde 23f7c75126
Android: Remove `-fno-integrated-as`, it can break arm64v8 build
We found that this flag causes this error on PR #48812 which does not add any
fancy inline assembly:
```
/tmp/tile_set-ce236a.s: Assembler messages:
/tmp/tile_set-ce236a.s:34676: Error: selected processor does not support `bfc x0,#32,#32'
clang++: error: assembler command failed with exit code 1 (use -v to see invocation)
```

That flag is mentioned in various errors related to assembler failures on
arm64v8 with Clang from the Android NDK.

It was added in Godot in #6958 when migrating from GCC to Clang, and is indeed
referenced in the NDK's Clang migration guide:
https://android.googlesource.com/platform/ndk/+/master/docs/ClangMigration.md

> Especially for ARM and ARM64, Clang is much stricter about assembler rules
> than GCC/GAS. Use `-fno-integrated-as` if Clang reports errors in inline
> assembly or assembly files that you don't wish to modernize.

We don't get those errors nowadays so it seems the flag is no longer needed.
2021-05-19 18:55:43 +02:00
Fabio Alessandrelli 14c057eab6 [HTML5] Fix GDNative compilation with emcc 2.0.19+
Add `WARN_ON_UNDEFINED_SYMBOLS=0` for the main module (which defines
`godot_js_main` as extern coming from the "side" module, i.e. the main
Godot binary).
2021-05-19 11:51:32 +02:00
Rémi Verschelde 6c367f8e0d
Merge pull request #48168 from LightningAA/control-to-ctrl-4.0 2021-05-17 17:38:02 +02:00
Pedro J. Estébanez 469fa47e06
Make all file access 64-bit (uint64_t)
This changes the types of a big number of variables.

General rules:
- Using `uint64_t` in general. We also considered `int64_t` but eventually
  settled on keeping it unsigned, which is also closer to what one would expect
  with `size_t`/`off_t`.
- We only keep `int64_t` for `seek_end` (takes a negative offset from the end)
  and for the `Variant` bindings, since `Variant::INT` is `int64_t`. This means
  we only need to guard against passing negative values in `core_bind.cpp`.
- Using `uint32_t` integers for concepts not needing such a huge range, like
  pages, blocks, etc.

In addition:
- Improve usage of integer types in some related places; namely, `DirAccess`,
  core binds.

Note:
- On Windows, `_ftelli64` reports invalid values when using 32-bit MinGW with
  version < 8.0. This was an upstream bug fixed in 8.0. It breaks support for
  big files on 32-bit Windows builds made with that toolchain. We might add a
  workaround.

Fixes #44363.
Fixes godotengine/godot-proposals#400.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-17 15:06:19 +02:00
bruvzg 11ccfad1aa
[macOS] Prefer .app bundle icon over the default one. 2021-05-13 09:25:09 +03:00
Rémi Verschelde e743b6b24c
CI: Update JavaScript linter deps with known security vulnerabilities
jsdoc has no new release so I'm tracking this PR:
https://github.com/jsdoc/jsdoc/pull/1906
2021-05-12 10:32:38 +02:00
Rémi Verschelde ba095ae567
SCons: Fix UWP build after #45315
(cherry picked from commit d1f023c35b)
2021-05-11 14:14:48 +02:00
Hugo Locurcio 064ca9adae
Remove debugging prints in the Linux DisplayServer
Some Vulkan debugging prints were also changed to be printed only
in verbose mode.
2021-05-08 19:07:50 +02:00
Fabio Alessandrelli 871d067aa9
Merge pull request #48543 from Faless/js/4.x_target_fps_fix
[HTML5] Fix target_fps when window loses focus.
2021-05-08 11:02:50 +02:00
Lightning_A 97fecd1b69 Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
Fabio Alessandrelli a1fe6d6899 [HTML5] Fix target_fps when window loses focus.
We don't get updates when the window is unfocused/minimized, so we must
detect the situation where the counted ticks start drifting away
resulting in more frames drawn than needed.
This commit adds a check to ensure that the target ticks do not drift
away more than one second.
2021-05-07 21:51:14 +02:00
Rémi Verschelde 35ec0e9be7
OS: Remove native video API only implemented on iOS
See discussion in #43811, it was only implemented on iOS and even that
implementation was fairly limited. This would best be provided as plugins
for Android and iOS without cluttering the shared OS API.
2021-05-07 20:40:24 +02:00
Fabio Alessandrelli 6243835619 [HTML5] Use 64KiB chunk size in JS HTTPClient.
For consistency with the native one, and the documentation.
2021-05-06 14:00:52 +02:00
Hugo Locurcio 3f078c99f6
Rename `IP_Unix`, `IP_Address` and `TCP_Server` to remove underscores 2021-05-06 02:52:01 +02:00
Rémi Verschelde dfbabcdaeb
Merge pull request #48453 from JFonS/improve_raycast_module_scsub
Port changes to the "raycast" module build files from 3.x
2021-05-04 17:55:25 +02:00
jfons 575543ce53 Port changes to the "raycast" module build files from 3.x 2021-05-04 17:21:41 +02:00
Aaron Franke 0de9a7d803
Rename `doubleclick` to `double_click` 2021-05-04 04:38:08 -04:00
Rémi Verschelde a91effc791
Merge pull request #48323 from naithar/fix/ios-virtual-keyboard-range
[iOS] Nonnegative start index for virtual keyboard range
2021-04-30 11:47:49 +02:00
Sergey Minakov 275772818d [iOS] Nonnegative start index for virtual keyboard range 2021-04-30 11:44:32 +03:00
Fabio Alessandrelli 8e2c237008 [HTML5] Fix builds with recent emscripten versions
Library suffix should be `.a`, the `EXTRA_` in
`EXTRA_EXPORTED_RUNTIME_METHODS` is deprecated.
2021-04-30 08:01:26 +02:00
Rémi Verschelde 5b16020846
Replace remaining uses of `NULL` with `nullptr`
Follow-up to #38736 (these uses were likely added after this PR was merged).
2021-04-29 11:53:27 +02:00
thebestnom 47bf216af9 [Android] fix generateDevTemplate 2021-04-28 21:59:42 +03:00
Rémi Verschelde 305b2a15bf
Merge pull request #48239 from akien-mga/goodbye-copymem
Core: Drop custom `copymem`/`zeromem` defines
2021-04-28 11:04:05 +02:00
Rémi Verschelde b999fbc4bd
Merge pull request #48228 from akien-mga/android-build-tools-30.0.3
Android: Upgrade buildTools from 30.0.1 to 30.0.3
2021-04-27 18:42:23 +02:00
Rémi Verschelde 8247667a3e
Core: Drop custom `copymem`/`zeromem` defines
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.

There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
2021-04-27 16:26:27 +02:00
Rémi Verschelde 2a1f3c4944
Merge pull request #48159 from Faless/js/4.x_pwa_export
[HTML5] Export as Progressive Web App
2021-04-27 14:57:53 +02:00
Fabio Alessandrelli 88c060b00d [HTML5] Export as Progressive Web App.
Adds possibility to export as a progressive web app.
Allows customizing base icons, display mode, orientation and offline
page.
2021-04-27 14:44:31 +02:00
Rémi Verschelde eb74784839
Merge pull request #48210 from akien-mga/linux-static_cpp-32-bit
Linux: Remove use_static_cpp override on x86_32
2021-04-27 13:43:50 +02:00
Fabio Alessandrelli c9dcf2b37b [HTML5] HTTP server uses optional SSL.
Generates a key/cert snakeoil pair or use a custom SSL cert/key.
This is of course false security, and potentially detrimental for it.

But, so long, those are the requirements browser vendors agreed on to
use things like the Gamepad API, and more advanced topics like wasm
threads.

You don't need this if you run on localhost (at least!), but you do
need this (or a much safer nginx proxy) to try those things on your
local network (e.g. when debugging a phone, networking, etc).
2021-04-27 12:16:35 +02:00
Fabio Alessandrelli 5d095ed21d [HTML5] Optional icon generation, use export name for it.
We used to only generate the favicon if it was specified in the user
project settings, now it's optional, will export it to `NAME.icon.png`,
(falling back to the default project icon if none is set in project
settings), and the `<link>` tag is added using the `$HEAD_INCLUDE`
instead of being hardcoded in the template.
2021-04-27 11:50:11 +02:00
Fabio Alessandrelli b3971e1998 [HTML5] Debug HttpServer now runs in `web` cache subdir.
Serving all files in that folder and using a known list of mime types.
Makes it easy to add more exported files, while still playing safe.
2021-04-27 11:20:02 +02:00
Fredia Huya-Kouadio abb21844d8 Remove deprecated xr features properties. These properties are now provided directly by the plugin. 2021-04-26 13:20:12 -07:00
Rémi Verschelde d88e1f04df
Android: Upgrade buildTools from 30.0.1 to 30.0.3
It seems 30.0.1 had issues with compatibility with JDK 8 and 11,
which appear to be solved in 30.0.3 as per godotengine/godot-docs#4796.
2021-04-26 17:22:53 +02:00
Rémi Verschelde aa15ad72ee
Linux: Remove use_static_cpp override on x86_32
After further testing it seems to work fine now when building binaries with GCC 5
on Ubuntu 16.04 (previously we were using GCC 9 on Ubuntu 14.04).

Follow-up to #45629.
2021-04-26 13:34:55 +02:00
Rémi Verschelde a09f3833bd
Android: Fix get_buffer false positive on empty dest buffer
Follow-up to #46810, this was missed in #47079 when fixing the issue
for other platforms.

Fixes #48135.
2021-04-23 21:33:13 +02:00
Rémi Verschelde 38b25617fe
Merge pull request #48053 from bruvzg/icu_no_except
Re-add "no-exceptions" for export templates builds with ICU.
2021-04-20 22:35:39 +02:00
Rémi Verschelde c395b9c4ac
Merge pull request #47552 from szymonm-google/validation_layers_android
Validation layers on Android
2021-04-20 20:53:34 +02:00
bruvzg 7e557bbec6
[JS, Android] Re-add "no-exceptions" for export templates builds with ICU. 2021-04-20 21:50:48 +03:00
Rémi Verschelde 1616055b3b
Merge pull request #47879 from SilverCreekEntertainment/add-uwp-export-project-notifier
Fix EditorExportPlugin  _export_begin and _export_end  functions not being called when exporting UWP
2021-04-20 20:07:45 +02:00
bruvzg a79cc0d772
Fix macOS build with all sanitizers enabled. 2021-04-16 08:27:00 +03:00
Rémi Verschelde 75875c0685
Merge pull request #40924 from qarmin/more_undefined_flags 2021-04-15 22:55:45 +02:00
Fredia Huya-Kouadio 3a033c44b6 Fix issue causing export to fail with "Could not unzip temporary unaligned APK" error and improve command output logging. 2021-04-15 13:33:37 -07:00
Rafał Mikrut f827bcd2f3 Add more sanitizer flags to shows more bugs 2021-04-15 20:16:28 +02:00
Gromph 564ddcde77 Fix EditorExportPlugin _export_begin and _export_end functions not being called when exporting UWP
in uwp's version of export.cpp create a ExportNotifier object so that EditorExportPlugin _export_begin and _export_end functions will be called as documentated.
2021-04-14 09:23:27 -07:00
thebestnom e598acff3a Allow to build dev template with symbols 2021-04-14 00:14:57 +03:00
Sergey Minakov 15630a4931 [iOS] Fix for plugin modified time check 2021-04-13 11:57:42 +03:00
Rémi Verschelde a9c29fdc1f
Merge pull request #47844 from m4gr3d/update_activity_result_callback
Add support for forwarding callbacks from Godot's parent activity
2021-04-13 10:10:29 +02:00
Fredia Huya-Kouadio 1f16ba2696 Add support for forwarding callbacks from Godot's parent activity. 2021-04-12 16:48:35 -07:00
Fredia Huya-Kouadio b51dc2dc44 Fix custom boot splash image scaling. 2021-04-12 16:38:41 -07:00
Szymon Majewski 0a29322991 Validation layers on Android 2021-04-12 10:09:06 -07:00
Fredia Huya-Kouadio a21457155b Fix issue causing the response callback to be invoked with the invalid `requestCode` and deprecate support for forwarding callbacks from Godot's parent activity. 2021-04-09 13:42:49 -07:00
Fabio Alessandrelli 34fd48f68d [HTML5] Implement WebGL fallback.
According to project settings and when WebGL2 is not available.
This does nothing in current master, as we have no rendering yet!
2021-04-06 12:57:24 +02:00
Rémi Verschelde d83761ba80
Style: Apply clang-tidy's `readability-braces-around-statements` 2021-04-05 14:09:59 +02:00
Rémi Verschelde 9bbe51dc27
Style: Apply clang-tidy's `modernize-use-nullptr` 2021-04-05 14:05:07 +02:00
Fabio Alessandrelli 737ed0f66e [HTML5] Disable body_size in fetch.
We were using `Content-Length` from the server when `Content-Encoding`
was not set (i.e. response was not compressed).

Sadly, in CORS requests accessing headers is restricted, and while
`Content-Length` is enabled by default, `Content-Encoding` is not.

This results in the impossibility of knowing if the content was
compressed, unless the server explicitly enabled the encoding header
via `Access-Control-Expose-Headers`.

To keep maximum compatibility we must disable `body_size` completely.
2021-04-03 15:05:36 +02:00
floppyhammer 18678fd11e Fix window resizing after minimization on Windows 2021-03-30 20:09:19 +08:00
Fabio Alessandrelli 01658adb30 [HTML5] Fix WM notifications not being called.
Regression from the library refactoring, binding and not calling is
pretty useless 'o_o.
2021-03-29 20:11:19 +02:00
Fabio Alessandrelli ae3c9345cc [HTML5] Fix Mono builds (old emcc?)
Promise chaining the emscripten module `then` function breaks it badly,
causing an infinite loop.
I'm unsure about the source of the issue, but most likely at this point
is due to the old emscripten version (I remember very old html5 builds
having issue with promise chaining too).

With this commit, we no longer use the module as a promise, and
instantiate it using `Promise` objects directly for compatibility.
2021-03-29 18:15:22 +02:00
Rémi Verschelde bc29f4bca1
Merge pull request #47435 from madmiraal/rename-texture-get_data
Rename Texture.get_data() to get_image()
2021-03-29 10:41:22 +02:00
bruvzg 09c8e69232
[macOS] Enable code signing by default, use ad-hoc signature if no identity specified. 2021-03-29 00:04:48 +03:00
Marcel Admiraal fd30c36985 Rename Texture.get_data() to get_image() 2021-03-28 13:00:46 +01:00
Aaron Franke a5324787c8
Rename some more global enums (Key, Joy, MIDI) 2021-03-23 07:13:23 -04:00
Aaron Franke 10d7fccb54
Rename ButtonList enum and members to MouseButton 2021-03-23 07:13:23 -04:00
Rémi Verschelde 6d13bfc914
Merge pull request #47191 from Faless/js/4.x_force_mime
[HTML5] Fix loading when mime-type is missing.
2021-03-20 23:09:45 +01:00
Rémi Verschelde fcddd8c53a
Merge pull request #46966 from qarmin/faster_release
Allow to not optimize release build
2021-03-20 22:44:47 +01:00
Fabio Alessandrelli 60f2166c27 [HTML5] Fix editor version numbering.
Should not write patch version when it's `0`.
2021-03-20 14:35:28 +01:00
Fabio Alessandrelli 778ef4e217 [HTML5] Fix loading when mime-type is missing.
`WebAssembly.instantiateStreaming` requires the mime-type to be
`application/wasm`, but some servers (including most debug servers) do
not provide the content-type header.

This commit forces it via JavaScript, by creating a `Response` object
with the `wasm` content, and explicitly defined `content-type` header.
2021-03-20 13:41:44 +01:00
Rémi Verschelde 62e134a0c0
Merge pull request #46818 from BastiaanOlij/fix_android_vulkan
Working on fixes for Android and Vulkan
2021-03-20 00:05:00 +01:00
bruvzg 9e18fce943
Add "Replace existing signature" to the macOS export (enabled by default). 2021-03-18 23:00:05 +02:00
Bastiaan Olij b3a43430aa Fixes on android:
- creating Vulkan context instead of OpenGL
- checking for validity of ENV in wrapper classes
- fix for access to JavaVM from threads
2021-03-18 10:41:54 +11:00
Fredia Huya-Kouadio 8f285d93e8 Fix onMainRequestPermissionsResult callback for Android plugins. 2021-03-17 09:23:58 -07:00
Rémi Verschelde 7b223e8eec
Merge pull request #47080 from mbrlabs/ios-sensor-conversion
Converted sensor acceleration units to m/s² on iOS and UWP
2021-03-17 14:27:23 +01:00
Marcus Brummer fda2743fef Converted sensor acceleration units to m/s^2 on iOS and UWP
This is beacuse on Android these values are already in m/s^2 while on
iOS and UWP they are in g. This just makes the behaviour consistent on
all platforms.
2021-03-17 14:05:05 +01:00
Fredia Huya-Kouadio 4380004176 Enable `doNotStrip` when doing development/debugging within Android Studio 2021-03-16 17:21:00 -07:00
Fredia Huya-Kouadio 2d574bcc85 Leverage java annotations to simplify the logic used to register the Godot plugin methods. 2021-03-16 01:16:08 -07:00
Rafał Mikrut 0b298d201e Allow to not optimize release build 2021-03-14 15:51:05 +01:00
Rémi Verschelde 8051307efe
Merge pull request #46810 from W4RH4WK/file-access-get-buffer-parameter-checks
Add parameter checks to FileAccess get_buffer functions
2021-03-14 01:11:55 +01:00
Rémi Verschelde 0fd723d3ec
Merge pull request #46941 from goostengine/asan-msvc
Add `use_asan` option for MSVC to enable AddressSanitizer
2021-03-13 22:10:01 +01:00
Rémi Verschelde 7015027cbf
Merge pull request #46900 from Ev1lbl0w/bugfix-malloc_calls
Replace malloc's with Godot's memalloc macro
2021-03-13 21:55:52 +01:00
Rémi Verschelde 942f5f0cb2
Merge pull request #46929 from Anshul7sp1/typosAndGrammar
Fixes small typos and grammar correction
2021-03-13 14:55:05 +01:00
Ev1lbl0w 838e7d0a8d
Replace malloc's with Godot's memalloc macro 2021-03-13 11:51:45 +00:00
Andrii Doroshenko (Xrayez) 53901d870b Add `use_asan` option for MSVC to enable AddressSanitizer
Exposes AddressSanitizer support in MSVC compiler. Can be installed via individual
components in the Visual Studio 2019 Installer.

Disabled by default. Compile the engine with `scons use_asan=yes`.
2021-03-12 18:44:06 +02:00
MrBrain295 b849873da5
Non functional to non-functional 2021-03-12 10:37:53 -06:00
Anshul7sp1 91181c2086 Fixes small typos and grammar correction 2021-03-12 19:05:16 +05:30
Fabio Alessandrelli f1e810adcb [HTML5] Drag and drop zip in project manager.
With a very nice hack, a new hidden configuration option that delays
dropped files removal at exit.

This still leaks while the project manager is running, but will clear
memory as soon as it exits or load something.
(reminder, dropped files are reguarly removed after the signal is
emitted specifically to avoid leaks, but I prefer hacking the HTML5
config then the project manager).
2021-03-12 10:16:02 +01:00
Fabio Alessandrelli 3416f7b521 [HTML5] Opt-in virtual keyboard support.
Added as an export option "Experimental Virtual Keyboard".
There is no zoom, so text/line edit must be in the top part of the
screen, or it will get hidden by the virtual keyboard.
UTF8/Latin-1 only (I think regular UTF-8 should work out of the box in
4.0 but I can't test it).
It uses an hidden textarea or input, based on the multiline variable,
and only gets activated if the device has a touchscreen.
This could cause problems on devices with both touchscreen and a real
keyboard (although input should still work in general with some minor
focus issues). I'm thinking of a system to detect the first physical
keystroke and disable it in case, but it might do more harm then good,
so it must be well thought.
2021-03-11 23:08:08 +01:00
Fabio Alessandrelli 3f059b90d6 [HTML5] Properly set canvas size during setup.
It used to be updated before the first iteration, causing the
window/viewport size values to be incorrect during the initialization
phase (e.g. during the first `_ready` notification).
2021-03-10 00:00:14 +01:00
Alex Hirsch cdf3099c68 Add parameter checkes to FileAccess get_buffer functions
fix #46540
2021-03-09 13:55:20 +01:00
Fabio Alessandrelli f34c7982c5 [HTML5] Respect allow_hidpi option during setup
The option was forced to `true` before, unlike on other platforms.
2021-03-08 23:37:53 +01:00
Rémi Verschelde 8507b69c13
Merge pull request #46796 from Faless/js/4.x_pwa_simple
[HTML5] Add PWA support to the editor page.
2021-03-08 17:29:48 +01:00
Fabio Alessandrelli d8bd54fbf2 [HTML5] Add PWA support to the editor page.
This allows to install it as an app, and provide offline support (after
the first run).
Practically, this boils down to adding a JSON file as a manifest, an
offline page to be displayed when the cached files are not avaialble,
and a JS file to cache resources and return them.

The reason for the "first run requirements" is that some browsers, will
emit an "install" by just visiting the page (to see if the JS code is
compatibile), and we do not want to force casual visitors to just
download the 10 MiB+ compressed editor WebAssembly file without pressing
the start button.

Special thanks to Hugo Locurcio (Calinou) for the initial work.
2021-03-08 17:06:24 +01:00
Fabio Alessandrelli 0816011e86 [HTML5] Catch audio worklet errors on disconnect.
Which could happen if the worklet was not fully loaded, or the audio
context had already aborted.
2021-03-08 17:06:24 +01:00
Rémi Verschelde ae850177a3 Linux: Fix PRIME detection on Steam
To avoid trying to do PRIME detection on fake `libGL.so` as used by e.g.
Renderdoc or Primus, we skip detection if there's a `libGL.so` in
`LD_LIBRARY_PATH`... and our luck is that Steam defines it and includes
system paths too, thus the actual system `libGL`... 🤦

So if we detect Steam, we skip this check.

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-03-08 15:51:14 +01:00
Fabio Alessandrelli fd76977183 [HTML5] Replace XMLHttpRequest with Fetch.
This has some advantages:
- Streaming/chunked response support.
- Broader headers support.
2021-03-06 11:44:07 +01:00
Fabio Alessandrelli 44a662a149 [HTML5] Rename heapCopy to heapSlice.
New heapCopy function copies a TypedArray to the heap.
2021-03-05 20:17:58 +01:00
Fabio Alessandrelli cb1b89dac5 [HTML5] Export process writes sizes in template.
This allow the loading bar to be much more reliable, even in cases where
realible stream loading status is not detectable (server-side
compression, chunked encoding).
2021-03-05 20:15:38 +01:00
Fabio Alessandrelli 272e491f52 [HTML5] Preloader fetch, streaming instantiation. 2021-03-05 20:11:18 +01:00
Rémi Verschelde 338fa05acc
Merge pull request #43768 from sjml/mac-mono-export-fix
Mono/macOS: Separate data dir into frameworks and resources for codesigning
2021-03-03 22:42:44 +01:00
Rémi Verschelde 0599e5f07a
Merge pull request #46621 from bruvzg/macos_export_entitlemenst_4
[macOS] Add entitlements config and export template `dylib` signing to the export.
2021-03-03 22:41:01 +01:00
Shane Liesegang 42eb09ddcc Mono/macOS: Separate data dir into frameworks and resources for codesigning
Co-authored-by: Ignacio Etcheverry <ignalfonsore@gmail.com>
2021-03-03 13:54:34 +01:00
bruvzg df267f90cc
[macOS] Add entitlements config and export template `dylib` signing to the export. 2021-03-03 14:13:55 +02:00
Jordan Schidlowsky da35cd2f00 add msan sanitizer option for linus/bsd, lsan option for osx 2021-03-02 11:10:16 -06:00
Pedro Rodrigues 1cb21b6937 Fix out of bounds array access on DisplayServerX11 code
The problem happened on methods `screen_get_position`,
`screen_get_usable_rect` and `window_set_current_screen` when they were
passed a negative screen value.

Fixes:
- #46184
- #46185
- #46186
2021-02-28 16:43:46 +00:00
Rémi Verschelde 0e8fae1038
Merge pull request #46457 from m4gr3d/fix_invalid_missing_templates_error_master
Fix invalid missing template error when the Android build template is not installed
2021-02-27 16:52:25 +01:00
Fredia Huya-Kouadio 6f0ca6c9f7 Fix invalid missing template error when the Android build template is not installed. 2021-02-26 12:31:12 -08:00
Fredia Huya-Kouadio 6fd881e43c Update the logic to load Godot Android plugins packaged into the binary.
The previous logic had the side effect of imposing a limit of one plugin per `aar` binary. The update lifts that restriction.
2021-02-26 08:38:39 -08:00
Rémi Verschelde 75d03f1fbd
Merge pull request #46446 from Faless/js/4.x_jsdoc
[HTML5] Document Engine and EngineConfig (jsdoc).
2021-02-26 15:31:44 +01:00
Fabio Alessandrelli 4404eb57e4 [HTML5] Make editor HTML build tag scons4-proof.
We used to have it like `$GODOT_VERSION` which caused inconsistencies
between different scons versions when substituting it.
It's now `@GODOT_VERSION@`, which is safe on both scons3 and scons4.
2021-02-26 15:08:47 +01:00
Fabio Alessandrelli 472482013e [HTML5] Add jsdoc2rst tool.
A template for `jsdoc` that generat the HTML5 public classref.

The script can be run via `npm run docs` to print to stdout.

You can dry run via `npm run docs -- --d dry-run` or write to file via
`npm run docs -- -d /path/to/file.rst`

Also update Makefile in `doc/` and add dry run test to CI.
2021-02-26 11:33:59 +01:00
Fabio Alessandrelli 018ee5a4dc [HTML5] Document Engine and EngineConfig (jsdoc).
This commit also removes the utils.js engine file, moving some of it's
content to config.js and some to engine.js .
2021-02-26 11:33:59 +01:00
Rémi Verschelde 2032960a09
Merge pull request #46403 from m4gr3d/fix_android_resources_inclusion_master
Update the filtering logic to properly handle directories with `.gdignore` files
2021-02-25 14:14:47 +01:00
Rémi Verschelde 2adacd751c
Merge pull request #46402 from nekomatata/natvis-local-vector
Added LocalVector to Visual Studio debugger visualization
2021-02-25 07:22:08 +01:00
Fredia Huya-Kouadio eda18fcc1f Update the filtering logic to properly handle directories with `.gdignore` files. 2021-02-24 18:40:36 -08:00
PouleyKetchoupp 27d5e1fff0 Added LocalVector to Visual Studio debugger visualization 2021-02-24 18:35:39 -07:00
Rémi Verschelde 7f8bfd6ed1
Merge pull request #46381 from m4gr3d/update_godot_fragment_lifecycle_master
Update the initialization timeline for the Godot fragment
2021-02-24 16:14:16 +01:00
Fredia Huya-Kouadio 3ce7678374 Update the initialization timeline for the Godot fragment to be more consistent with the previous activity based timeline. 2021-02-24 06:16:07 -08:00
Fredia Huya-Kouadio bc5120eb97 Add logic to record the version of the Godot engine for the Android platform. 2021-02-24 04:23:46 -08:00
Hein-Pieter van Braam-Stewart 0dc368f9f9 Allow static linking with libatomic using clang
When using use_static_cpp we want to statically link with atomic as well
to make sure we don't incur any new runtime dependencies.

Scons doesn't quite support this so we do this little trick.
2021-02-23 14:51:44 +01:00
Hein-Pieter van Braam-Stewart 6a146d405c Use -latomic when using clang (server platform)
version of c9b3a00a63 for the server
platform
2021-02-22 17:09:30 +01:00
Hein-Pieter van Braam d4d7535524
Merge pull request #46256 from hpvb/dri-prime-amd-master
Add 'AMD' GPU vendor name to PRIME detector
2021-02-20 17:18:46 +01:00
Hein-Pieter van Braam-Stewart e6a5899646 Add 'AMD' GPU vendor name to PRIME detector
Apparently some recent Mesa version also changed AMD's vendor string. In
addition I found a small uninitialized variable that's corrected now.
2021-02-20 16:49:06 +01:00
Hein-Pieter van Braam-Stewart c9b3a00a63 Use -latomic when linking whe using clang on Linux
According to the LLVM documentation when using GNU's libstdc++ clang
will not automatically link with -latomic. This is necessary since we
merged c++11 atomics support.

This fixes linking using Clang on Linux
2021-02-20 16:40:55 +01:00
Hein-Pieter van Braam-Stewart 5233d78f49 An update to the dylibloader for older inttypes
This #define's older inttypes to their newer versions and #includes
<stdint.h> in the generated files. This will help with older
glibc/compiler versions using headers generated on newer systems.

This closes #46223
2021-02-20 01:24:30 +01:00
Rémi Verschelde 480c5f28ab
Merge pull request #46200 from Faless/js/4.x_canvas_size_pr
[HTML5] Easier HTML templates, better canvas size handling
2021-02-19 15:16:23 +01:00
Fabio Alessandrelli 65abf94675 [HTML5] Better fullscreen, canvas resizing.
Three canvas resize policies:
- `None`: Godot window settings are ignored.
- `Project`: Godot handles the canvas like a native app (resizing it
  when setting the window size).
- `Adaptive`: Canvas size will always adapt to browser window size.

Use `None` if you want to control the canvas size with custom JavaScript
code.
2021-02-19 05:12:32 +01:00
Fabio Alessandrelli 2972ea3229 [HTML5] Easier HTML templates, better deinit/cleanup. 2021-02-19 05:12:32 +01:00
Rémi Verschelde 247b7e2448
Merge pull request #46131 from bruvzg/move_tablet_to_ds
Move tablet driver API from OS to DisplayServer
2021-02-18 20:36:46 +01:00
Rémi Verschelde 310496a89f
Merge pull request #45617 from RandomShaper/modernize_atomics
Modernize atomics (and fix `volatile`)
2021-02-18 19:40:31 +01:00
Pedro J. Estébanez 8e128726f0 Modernize atomics
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile bool` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 17:12:46 +01:00
bruvzg 3e0262509f
Move tablet driver API from OS to DisplayServer. 2021-02-18 17:12:24 +02:00
reduz 64140eaf42 Reorganize Project Settings
-Advanced Settings toggle also hides advanced properties when disabled
-Simplified Advanced Bar (errors were just plain redundant)
-Reorganized rendering quality settings.
-Reorganized miscelaneous settings for clean up.
2021-02-18 11:23:34 -03:00
Fredia Huya-Kouadio 526b99ee36 Disable engine splash logic on Android; this is now handled by the Android theme api.
In addition, add support for scaling and applying filter to the splash screen on Android.
One limitation of the api being used is that the splash screen aspect ratio is not maintained when it's scaled up.
2021-02-18 03:20:49 -08:00
Rémi Verschelde 8870f43d74
Merge pull request #46161 from akien-mga/linux-joypads-udev-fallback
Linux: Fix fallback logic when udev fails creating a context
2021-02-18 11:30:12 +01:00
Rémi Verschelde e26a1f807b
Linux: Fix fallback logic when udev fails creating a context
Thanks to Noshyaar for pointing out the bug.
2021-02-18 10:28:37 +01:00
Fredia Huya-Kouadio edeca16fb6 Override `ANDROID_NDK_ROOT` based on the project ndk version.
This helps resolve issues where the project ndk version differs from the one pointed by the `ANDROID_NDK_ROOT` environment variable (if it exists).
2021-02-17 19:11:05 -08:00
Fredia Huya-Kouadio 9418197081 Add missing `ndkVersion` to the library gradle build config. 2021-02-17 16:31:31 -08:00
Fredia Huya-Kouadio e5311f3523 Revert AGP to version 4.0.1 as a workaround to https://issuetracker.google.com/issues/171235570 in version 4.1.x 2021-02-17 15:39:53 -08:00
Rémi Verschelde 327ac7c375
Merge pull request #46143 from hpvb/dont-clobber-symbols
Don't clobber original library symbols
2021-02-18 00:38:48 +01:00
Rémi Verschelde c730da8b20
Android: Bump NDK version to 21.4.7075529
This is what GitHub Actions now provide and they removed the previous 21.3.6528147.
A bit annoying to have our hand forced this way but it's still 21.x so should be good
to upgrade.
2021-02-18 00:28:51 +01:00
Hein-Pieter van Braam-Stewart 8d36b17343 Don't clobber original library symbols
It appears that we can get a fun circle dependency on a shared object on
some system configurations causing issues with our 'fake' function
pointer names. This can lead to a crash.

The new wrapper generator renames all the symbols so this can't happen
anymore. See https://github.com/hpvb/dynload-wrapper/commit/704135e

This closes #46140
2021-02-18 00:21:10 +01:00
Fredia Huya-Kouadio 9714abf8cb Add verbose logging to help with troubleshooting the Android build/export process. 2021-02-17 13:18:41 -08:00
Rémi Verschelde ab4f5c0668
Merge pull request #46117 from akien-mga/dynamic-load-libudev
Dynamically load libudev.so.1 on Linux
2021-02-17 13:40:15 +01:00
Rémi Verschelde a10c259c1d
Dynamically load libudev.so.1 on Linux if `udev=yes`
This makes it possibly to run Linux binaries compiled with udev support on
Linux systems which do not provide udev (typically systemd-less distros).

If udev is missing, we fall back to parsing `/dev/input` like when compiled
without udev support (`udev=no`).

Also adding some verbose debug statements to know which method we're using
when debugging Linux joypad issues.

The libudev so wrappers were generated on Mageia 8 with libudev 246.9 using
https://github.com/hpvb/dynload-wrapper:
```
./generate-wrapper.py --include /usr/include/libudev.h --sys-include '<libudev.h>' \
  --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ \
  --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c
```
2021-02-17 13:14:59 +01:00
Fabio Alessandrelli 26ec6ca576 [HTML5] Implement get_processor_count. 2021-02-17 13:03:52 +01:00
Fabio Alessandrelli 1446cfd13d [HTML5] Fix compilation issues in 4.0
More memory is needed, and a Workaround to avoid undefined symbol due to
dead code elimination.
2021-02-17 13:03:52 +01:00
Fabio Alessandrelli a3c52b62db
Merge pull request #46087 from Quadtree/add_cwrap_to_runtime_methods
Add cwrap to EXTRA_EXPORTED_RUNTIME_METHODS
2021-02-17 12:30:40 +01:00
Hein-Pieter van Braam-Stewart 09f82fa6ea Dynamically load libpulse.so.0 and libasound.so.1 on Linux
By generating stubs using https://github.com/hpvb/dynload-wrapper we
can dynamically load libpulse and libasound on systems where it is available.
Both are still a build-time requirement but no longer a run-time dependency.

For maintenance purposes the wrappers should not need to be re-generated
unless we want to bump pulse or asound to an incompatible version. It is
unlikely we will want to do this any time soon.

This closes #20978
2021-02-16 20:31:49 +01:00
Quadtree d2c34e83b5 Add cwrap to EXTRA_EXPORTED_RUNTIME_METHODS 2021-02-16 01:04:44 -08:00
Fredia Huya-Kouadio fe9f0758db Expose GodotPlugin's utility methods used for registration and signal emitting.
This enables creation and use of a plugin like class by composition rather than inheritance.
2021-02-15 15:55:59 -08:00
bruvzg d756f6a294
[macOS] Ignore mouse move event caused by mouse mode switch. 2021-02-15 00:20:50 +02:00
Fabio Alessandrelli 6cff589b5b [HTML5] Detect screen scale and DPI.
`OS.get_screen_scale` will now return the `window.devicePixelRatio`
value, `OS.get_screen_dpi` uses CSS media queries to find approximate
DPI value for the current display.
`OS.get_screen_size` also return the actual screen size (not the CSS
pixel size).
2021-02-12 12:01:44 +01:00
Rémi Verschelde ab4c3ddf32
Merge pull request #45888 from Faless/js/4.x_xhr_fix
[HTML5] Fix HTTPClient request_raw.
2021-02-11 11:08:08 +01:00
Fabio Alessandrelli 75c4e2c5fa [HTML5] Fix HTTPClient request_raw.
Now send data according to the spec, properly handle null data.
Simplify JS code since we are at it.
2021-02-11 10:03:36 +01:00
Fabio Alessandrelli 3366122e1a [HTML5] Handle contextmenu, webglcontextlost internally.
This way they are automatically cleaned up when the engine exits,
landing a hand to browsers garbage collectors.
2021-02-11 07:56:10 +01:00
reduz 8b19ffd810 Make Servers truly Thread Safe
-Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread).
-RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault.
-Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory).
-3D physics server changed to be made multithread friendly.
-Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads.
-Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
2021-02-10 13:21:46 -03:00
Rémi Verschelde f3d15771bf
Merge pull request #45771 from CherokeeLanguage/master
Fix joystick axis mapping issues with NVIDIA shield. Probably others.
2021-02-10 17:03:42 +01:00
Michael Conrad cc2547a9e9 Fix joystick axis mapping issues with NVIDIA shield. Probably others.
Issues addressed:

a) Axis mappings were including virtual mouse axes on NVIDIA Shield TV.

The virtual mouse axes have the same axis numbers as the normal analog stick numbers. This was completely breaking joypad support on NVIDIA Shield TV.

b) Joypads were being tracked in a List with the index in the list being treated as the Godot device id.

If a device were to be removed, any device later in the list would be shifted, potentially causing future events with the shifted joypads to have incorrect IDs according to the Godot engine.

c) Unnecessary events were being sent to the Godot engine.

A check was added (per Joystick) that will prevent sending events for all axes when only a single axis value changed.
A similar check was added for "HATs".

See #45712
2021-02-09 08:37:22 -05:00
Bastiaan Olij 4946ae16fc Use /Zi and /FS for including debugger symbols on Windows with MSVC 2021-02-09 00:20:42 +11:00
Rémi Verschelde 849c090343
SCons: Fix debug_symbols tests after switch to BoolVariable
Bug introduced in #45679.

Fixes part of #45816.
2021-02-08 08:53:16 +01:00
kobewi b6e2ad0e7e Cancel event dispatch on error 2021-02-07 21:50:12 +01:00
Rémi Verschelde 54857d7e81
Merge pull request #44949 from m4gr3d/specify_project_ndk_version
Improve the logic to compile for Android
2021-02-05 13:27:37 +01:00
Rémi Verschelde 5e0f3f1fe1
Merge pull request #45705 from Faless/js/4.x_editor_preload
[HTML5] Better editor persistent folders, automatically open zip import popup
2021-02-04 14:53:31 +01:00
Fabio Alessandrelli 95d2102565 [HTML5] Make home path persistent in editor.
We used to only persist specific sub-folder of /home/web_user/ when
running the Web Editor. This resulted in bad UX about default project
creation path etc.
This PR makes the whole folder persistent, move the zip preloading to a
different folder (to avoid persisting it), and automatically prompt the
user to import it if present.
2021-02-03 18:59:54 +01:00
Rémi Verschelde 43ab0edbd2
Merge pull request #45686 from naithar/feature/extend-plugin-params-4.0
[4.0] [iOS] Additional 'linker_flags' plugin parameter
2021-02-03 18:37:42 +01:00
Sergey Minakov c575fb81cc iOS: Use storyboard as loading screen
If 'Launch Screen' storyboard is present it will be used as loading screen.
2021-02-03 19:53:52 +03:00
Sergey Minakov 9f5265766d [iOS] Additional 'linker_flags' plugin parameter 2021-02-03 18:27:26 +03:00
Sergey Minakov 4fda1ae6b8 [iOS] Remove remote notifications code
Using any remote notification method (even indirectly) causes App Store to trigger APNS warning email.
2021-02-03 15:00:43 +03:00
Rémi Verschelde db26871210 SCons: Add `production=yes` option to use production defaults
This is meant for users making custom builds to match the options used on
optimized, official builds.

This enables, on the platforms which support them:
- `use_static_cpp=yes` (portable binaries for Linux and Windows)
- `use_lto=yes` (link time optimizations - note: requires a lot of RAM!)
- `debug_symbols=no` (no debug symbols, smaller binaries)

Also abort when using MSVC with `production=yes`, as:
- It cannot optimize the GDScript VM like GCC or Clang do, leading to
  significant performance drops.
- Its LTO support is unreliable, at least used to trigger crashes last
  we tried it extensively.

All options can still be overridden if specified, and the `dev=yes` option
was changed to also support overrides.
2021-02-03 11:48:17 +01:00
Fabio Alessandrelli 97288f25f4 [HTML5] Fix mouse_mode and fullscreen detection.
The canvas_id is `#`-prefixed to work with emscripten as a CSS selector.
When comparing to an event target ID (e.g. when checking if the canvas
is fullscreen, or is locking the mouse) we need to skip the first char
(the hash).
2021-02-02 20:08:51 +01:00
Rémi Verschelde 9e0bdeb5de
Merge pull request #45665 from naithar/fix/ios-plugin-initialization-4.0
[4.0] [iOS] Earlier plugin initialization
2021-02-02 17:30:20 +01:00
Rémi Verschelde 74091a1974
Merge pull request #45579 from zaevi/add_scons_ext
add search extensions for Scons' path
2021-02-01 20:41:25 +01:00
Rémi Verschelde 0f4e2cd40c
Merge pull request #45630 from akien-mga/linux-enable-udev
Linux: Enable udev support by default
2021-02-01 16:00:34 +01:00
Rémi Verschelde 1ebd66daff
Linux: Build with use_static_cpp=yes by default for x86_64
This enables `-static-libgcc -static-libstdc++` which help make custom Linux
builds more portable (official builds have been using this option for years).

For some obscure reason Ubuntu 18.04 i386 crashes when using the option for
i386 builds, so let's play it safe and enable for x86_64 only for now.
2021-02-01 14:56:35 +01:00
Rémi Verschelde e8b69fccbe
Linux: Enable udev support by default
This has been enabled for years in official binaries, and users making custom builds
may end up not enabling it unknowingly, so it's best if we default to the same as
what official builds do.

The original reason for having it opt-in was likely the addition of a dependency on
libudev, but that should be fairly ubiquitous by now.
2021-02-01 14:40:15 +01:00
Sergey Minakov 3db04b3bd4 [iOS] Initialize plugins earlier
Initialize iOS plugins before 'Main::setup' call to have access to them in script's '_init' function.
2021-02-01 15:27:10 +03:00
Rémi Verschelde 5525cd85c6
Merge pull request #45315 from RandomShaper/modernize_thread
Modernize Thread
2021-01-31 15:24:56 +01:00
zaevi befbfecd4d add search extensions for scons' path 2021-01-30 20:13:01 +08:00
Pedro J. Estébanez 99fe462452 Modernize Thread
- Based on C++11's `thread` and `thread_local`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed (except for the few cases of non-portable functions)
- Simpler for `NO_THREADS`
- Thread ids are now the same across platforms (main is 1; others follow)
2021-01-29 12:02:13 +01:00
Marcel Admiraal fad0cec272 Don't handle BaseException in JavaScript build script 2021-01-28 19:23:49 +00:00
Aaron Franke e829b7aee4
Unify URI encoding/decoding and add to C#
http_escape and percent_encode have been unified into uri_encode, and http_unescape and percent_decode have been unified into uri_decode.
2021-01-28 07:45:01 -05:00
Rémi Verschelde 69f77e83bf
Merge pull request #45481 from ronchaine/joypad-detection
POSIX systems: go through all event devices, not just event[0-32]
2021-01-27 19:43:34 +01:00
Jari Ronkainen 01c030f9b7 Go through all event devices, not just event[0-32]
There are no guarantees that joypads are in event0-event32
range.  Some devices, such as laptops with detachable keyboards
and wacom can reserve events all the way up to 32.

Some udev rules with e.g. custom controller firmwares may
load the device as /dev/input/eventX, where X is greater than
32.

This patch uses POSIX dirent to enumerate the event devices, so
entries outside 0-32 range are not skipped.
2021-01-27 20:05:31 +02:00
Sergey Minakov 366ce084f4 [iOS] Rework push notification methods usage
Moved AppDelegate push notifications methods implementation to 'GODOT_ENABLE_PUSH_NOTIFICATIONS'
which can be used in plugins to implement APNS plugins.
2021-01-26 18:39:45 +03:00
Rémi Verschelde de9c9007c2
Merge pull request #45252 from naithar/feature/plugins-migration
[4.0] [iOS] iOS Plugins Migration
2021-01-26 14:53:06 +01:00
Rémi Verschelde 7086d72e13
Merge pull request #45277 from bruvzg/ios_arm64_sim
Add separate `simulator` flag for iOS build, change main library to `xcframework`.
2021-01-26 14:02:16 +01:00
Fabio Alessandrelli 6f64d93664 [HTML5] Builtin HTTP server disable browsers cache
We don't want browsers to cache our temporary exports (since they will
always differ).
2021-01-25 20:15:57 +01:00
Fabio Alessandrelli 4e09453407 [HTML5] Better editor HTML, small refactor.
Side and GDNative libraries are now added by engine.js , the dynlink pre
js had been deleted.
2021-01-25 20:15:57 +01:00
Fabio Alessandrelli abb8d8e8ca [HTML5] Fix "initial_memory" build option parsing 2021-01-25 17:47:52 +01:00
Rémi Verschelde d39f6386ce
Merge pull request #45314 from RandomShaper/modernize_rwlock
Modernize RWLock
2021-01-22 14:51:05 +01:00
Pedro J. Estébanez 8ed259b792 Modernize RWLock
- Based on C++14's `shared_time_mutex`
- No more need to allocate-deallocate or check for null
- No pointer anymore, just a member variable
- Platform-specific implementations no longer needed
- Simpler for `NO_THREADS`
2021-01-19 11:53:10 +01:00
Marios Staikopoulos 2a2de2f684 BUGFIX: Fix unintialized cursor_shape on windows display server 2021-01-18 15:52:47 -08:00
Sergey Minakov 6d67827f4e [iOS] Fix embedding of plugin libraries 2021-01-18 19:23:12 +03:00
Fabio Alessandrelli bab20c6e09 [HTML5] Custom Gamepad library to allow remapping.
No longer use emscripten functions for gamepads, implement them as
library functions in library_godot_display.js instead.
This allows us to do a better job at "guessing" vendorId, productId, OS,
etc. thus allowing us to better find the remapping for the controller.
2021-01-18 12:30:38 +01:00
bruvzg efd8f27790
[WIP] Add separate `simulator` flag for iOS build, change main library to `xcframework` format. 2021-01-18 10:36:14 +02:00
Sergey Minakov 13a6a83b44 [iOS] Remove plugins from modules. 2021-01-17 14:33:39 +03:00
Sergey Minakov 01d513f3ca [iOS] Added support for '.xcframework' in plugins 2021-01-17 14:13:09 +03:00
Sergey Minakov 7990c2c5e8 [Plugins] Rename 'PluginConfig' struct to platform specific name 2021-01-15 17:54:35 +03:00
Rémi Verschelde af878716f2
CI: Update to clang-format 11 and apply ternary operator changes 2021-01-12 19:32:53 +01:00
Rémi Verschelde 1218441b16
Merge pull request #44514 from madmiraal/split-os-execute
Split OS::execute into two methods
2021-01-12 16:17:04 +01:00
Fabio Alessandrelli c327f42b0a [HTML5] Reorganize build script.
Simplify helper functions, fix env/sys_env confusion and depends for
externs and pre-js.
2021-01-10 12:24:40 +01:00
Fabio Alessandrelli 33e914b1eb Fix JavaScript platform after MainLoop methods rename. 2021-01-10 12:04:09 +01:00
Marcel Admiraal 2a74b388d0 Split OS::execute into two methods
1. execute(): Executes a command and returns the results.
2. create_process(): Creates a new process and returns the new process' id.
2021-01-09 10:03:23 +00:00
Yuri Roubinsky 785f84f1d1 Removes semicolon typo in display_server_windows 2021-01-06 15:08:51 +03:00
Yuri Roubinsky d4939aa05f Fix PopupMenu's which are not closed after a recent commit 2021-01-06 14:42:15 +03:00
Fredia Huya-Kouadio eee213e01a Improve the logic to compile for Android by automatically detecting and setting up the Android NDK if needed. 2021-01-05 15:07:17 -08:00
Rémi Verschelde 9d6df31b84
Merge pull request #44299 from Chaosus/fix_win32_warning
Fixed warning at window closing (WIN32)
2021-01-05 09:00:47 +01:00
Rémi Verschelde c13bb0b541
Merge pull request #44154 from dsnopek/webxr-master
Add WebXR support (for Godot 4.0)
2021-01-05 00:19:50 +01:00
David Snopek a54a2d65e1 Add support for WebXR 2021-01-04 17:02:37 -06:00
Rémi Verschelde 3433780c49
Merge pull request #44645 from m4gr3d/update_apk_signing_logic
Update the logic to sign prebuilt Godot Android apks
2021-01-01 22:58:11 +01:00
Fredia Huya-Kouadio 49969de221 Update the logic to sign prebuilt Godot Android apks.
The previously used tool, `jarsigner` has been deprecated in favor of `apksigner` which is bundled with the Android SDK.
The logic is refactored accordingly and a few editor settings have been deprecated in the process as they're no longer necessary.

Note: As a side effect, specifying the Android SDK path is now required. The docs will be updated to reflect that change.
2021-01-01 13:36:27 -08:00
Rémi Verschelde b5334d14f7
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Yuri Roubinsky 41efbf8cae Fixed warning at project startup (WIN32) 2021-01-01 18:09:34 +03:00
Yuri Roubinsky 8a2bc6bf58 Fix window restoring after fullscreen again 2020-12-31 16:07:05 +03:00
Rémi Verschelde 72c13c2631
Merge pull request #44638 from m4gr3d/export_format_util_method
Hardcode the export format for the editor 'run' feature
2020-12-30 09:11:31 +01:00
Fredia Huya-Kouadio de64b783b4 Add utility method to export the project using a preset format and sign parameter. 2020-12-29 09:04:01 -08:00
Rémi Verschelde 09212fba1e
Fix missed renamings from empty() to is_empty()
Those were missed in #44401 or added by later PRs.
2020-12-29 09:55:07 +01:00
Rémi Verschelde 8886a6a45c
Merge pull request #44757 from andrew-softdev/my-bug-fix
Incorrect format specifiers used to display some type data in the Visual Studio debugger
2020-12-28 20:44:15 +01:00
andrew-softdev 679aabea26 Incorrect format specifiers used to display some String/StringName data 2020-12-28 18:46:32 +00:00
Rémi Verschelde e4c0572385
Merge pull request #44593 from madmiraal/rename-mainloop-methods
Rename MainLoop methods to match Node methods
2020-12-28 14:44:28 +01:00
Marcel Admiraal 5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
Rémi Verschelde 719e4b1156
Merge pull request #44619 from bruvzg/m1_dragdrop_4
[4.0] Fix file drag-drop on M1 Macs.
2020-12-23 17:37:42 +01:00
bruvzg 39bcc77d6a
[4.0] Fix file drag-drop on M1 Macs. 2020-12-23 18:00:50 +02:00
Fredia Huya-Kouadio 2d492ff8ba Fix invalid invocation of `get_class_loader`.
The call was made on a `Godot` instance instead of an `Activity` instance.
2020-12-23 02:08:27 -08:00
Marcel Admiraal d9e9eb8d04 Rename MainLoop methods to match Node methods 2020-12-22 12:34:57 +00:00
Marcel Admiraal 2df9a8ccad Rename Rect2 and Rect2i clip() to intersection() 2020-12-19 12:59:08 +00:00
Rémi Verschelde 214a22b98e
Merge pull request #44457 from akien-mga/scons-thirdparty-lib-depends
SCons: Add explicit dependencies on thirdparty code in cloned env
2020-12-18 13:40:33 +01:00
Marcel Admiraal b56a2f34ce Add missing override keywords in os_windows.h 2020-12-18 09:38:09 +00:00
Rémi Verschelde c7b53c03ae
SCons: Add explicit dependencies on thirdparty code in cloned env
Since we clone the environments to build thirdparty code, we don't get an
explicit dependency on the build objects produced by that environment.

So when we update thirdparty code, Godot code using it is not necessarily
rebuilt (I think it is for changed headers, but not for changed .c/.cpp files),
which can lead to an invalid compilation output (linking old Godot .o files
with a newer, potentially ABI breaking version of thirdparty code).

This was only seen as really problematic with bullet updates (leading to
crashes when rebuilding Godot after a bullet update without cleaning .o files),
but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.
2020-12-18 10:29:34 +01:00
Rémi Verschelde 5332d212f9
Merge pull request #44467 from madmiraal/add-override-keywords
Add missing override keywords to core/os.h derived classes
2020-12-17 23:02:58 +01:00
Marcel Admiraal fa435a550a Add override keywords to core/os.h derived classes. 2020-12-17 18:02:31 +00:00
Marcel Admiraal 60ddca2545 Remove OS::can_draw() remnants 2020-12-17 16:35:48 +00:00
Rémi Verschelde ae0399382a
Merge pull request #44433 from akien-mga/scons-fix-platform-opts
SCons: Add only selected platform's opts to env
2020-12-17 09:56:07 +01:00
Rémi Verschelde fb2465b3c8
Merge pull request #44410 from KoBeWi/project--tools--thisPR
Make tool menu plugins use Callables for callback
2020-12-16 22:04:39 +01:00
kobewi 889f5e44ef Make tool menu plugins use Callables for callback 2020-12-16 20:23:51 +01:00
Rémi Verschelde 0f84d8dc49
SCons: Add only selected platform's opts to env
Otherwise we can get situations where platform-specific opts with the same name
can override each other depending on the order at which platforms are parsed,
as was the case with `use_static_cpp` in Linux/Windows.

Fixes #44304.

This also has the added benefit that the `scons --help` output will now only
include the options which are relevant for the selected (or detected) platform.
2020-12-16 16:31:19 +01:00
Marcel Admiraal f9b83e90b2 Fix named anonymous struct warning 2020-12-16 07:42:16 +00:00
Rémi Verschelde 2760f5d0b4
Merge pull request #44315 from madmiraal/fix-handles-baseexception
Don't handle BaseException in build scripts
2020-12-12 12:23:07 +01:00
Marcel Admiraal 8ef5e3201c Don't handle BaseException in build scripts 2020-12-12 10:05:42 +00:00
Rémi Verschelde 8020515717
HTML5: Code style cleanup for export code 2020-12-10 13:57:46 +01:00
Rémi Verschelde 37d0d757d6
Merge pull request #40708 from bruvzg/improve_os_locale
Improve `OS::get_locale()` and documentation.
2020-12-10 11:49:00 +01:00
Fabio Alessandrelli eb2152538c [HTML5] Fix errors when Mic is not allowed. 2020-12-09 17:54:50 +01:00
Fabio Alessandrelli a28d5e2be7 [HTML5] Improve platform buildsystem.
Check emcc version requirements when building GDNative.
Add more build options (sanitizers, initial memory).
2020-12-09 17:54:50 +01:00
Fabio Alessandrelli 6bc07cf777 [HTML5] Add logo and favicon to editor html. 2020-12-09 17:54:50 +01:00
Rémi Verschelde 114f97ff11
Merge pull request #44128 from KoBeWi/🧹
Cleanup unused engine code
2020-12-09 13:01:50 +01:00
Tomasz Chabora 2c048ea164 Cleanup unused engine code 2020-12-09 12:12:36 +01:00
Fabio Alessandrelli 09a9712a6a Remove unused FileAccessJAndroid. 2020-12-09 10:58:36 +01:00
Rémi Verschelde e5e1277ecd
Merge pull request #44161 from Faless/fix/fa_buffered_remove
Remove unused FileAccessBuffered
2020-12-09 09:14:14 +01:00
thebestnom d543917c03 Android: fix mouse capture relative wrong 2020-12-08 23:51:45 +02:00
thebestnom e7f259c366 Android: Allow Mouse Capture 2020-12-08 22:14:08 +02:00
Rémi Verschelde 90bdba576a
Merge pull request #43742 from qarmin/editor_modules_default_values
Initialize class/struct variables with default values in platform/ and editor/
2020-12-08 15:53:42 +01:00
Rémi Verschelde efc2104096
Merge pull request #44021 from dakennedyd/personal
Fix implementation of move_to_trash() on Linux
2020-12-07 21:06:10 +01:00
David Kennedy 8b68c6808d Fixes move_to_trash() on Linux
Fixes #42840 OS move_to_trash() on Linux is not compliant with the Freedesktop specification
2020-12-07 16:40:56 -03:00
Rémi Verschelde e20011b0da
Merge pull request #44076 from Faless/js/4.x_gdnative
[HTML5] Optional GDNative Support
2020-12-07 15:34:33 +01:00
Fabio Alessandrelli 781efc26e0 Remove now unused FileAccessBuffered. 2020-12-06 19:37:11 +01:00
Fabio Alessandrelli 1396c74734 [HTML5] Use regular unix FileAccess implementation. 2020-12-06 19:25:31 +01:00
Fabio Alessandrelli dd9503dc19 [HTML5] Make GDNative support feature-based.
This is suboptimal as it requires adding an extra compile flag, but
rewriting how feature tags work is beyond the scope of this work.
2020-12-05 01:12:52 +01:00
Fabio Alessandrelli 1e7bd3d08b [HTML5] Allow selecting the export type.
Available types:
- Regular
- GDNative (support dynamic linking and thus GDNative WASM files)
- Threads (uses WebAssembly Threads)
2020-12-05 00:55:11 +01:00
Fabio Alessandrelli 611c4998e8 [HTML5] EditorRunNative works with GDNative.
This "breaks" our loading bar logic (libraries are not counted).
Fixing it is non trivial and probably deserves investigating a different
strategy.
2020-12-05 00:55:07 +01:00
Fabio Alessandrelli ca34b5e57a [HTML5] GDNative support via SIDE_MODULE.
Working with emscripten >= 2.0.10
2020-12-05 00:52:43 +01:00
Fabio Alessandrelli 1167ab96e9 [HTML5] Add function signatures to JS libraries. 2020-12-04 23:21:33 +01:00
reduz 2787ad65be RenderingServer reorganization 2020-12-04 18:39:46 -03:00
Rémi Verschelde 02d228554b
OSX: Fix tmp .app folder name after #44060 2020-12-04 14:16:49 +01:00
Bastiaan Olij cf5737acbe Added driving joystick type to windows joystick handling 2020-12-04 23:31:19 +11:00
Rémi Verschelde 328af1db75
Merge pull request #44074 from reduz/reorganize-3d
Reorganize rendering server.
2020-12-04 08:36:31 +01:00
Rémi Verschelde 586a20875d
Merge pull request #44018 from lyubomirv/mingw_use_static_cpp_option
Add 'use_static_cpp' option for MinGW builds
2020-12-03 23:58:57 +01:00
reduz e93b2242c2 Reorganize rendering server.
-Made RenderingServerScene abstract, allowing reimplementation
-RenderingServerRaster -> RenderingServerDefault, but this class is going away soon.
2020-12-03 19:01:01 -03:00
Lyubomir Vasilev e52c9c26fc Add 'use_static_cpp' option for MinGW and MSVC builds 2020-12-03 23:46:16 +02:00
alan-w-255 7fa803fa2c
fix android wrong multi-touch pointerid
Fixes #43519.
2020-12-03 13:34:04 +01:00
Rémi Verschelde 707a62783b
OSX: Remove tmp .app folder instead of moving to trash
Fixes #42232.

And fixes memory leak with use of DirAccess, and harmonize the use of
the sanitized pkg name.
2020-12-03 10:07:40 +01:00
Rafał Mikrut e1811b689b Initialize class/struct variables with default values in platform/ and editor/ 2020-12-02 16:09:11 +01:00
Rémi Verschelde f1a9de9c59
X11: Include limits.h for LONG_MAX
Fixes #44030.
2020-12-02 15:43:29 +01:00
Fabio Alessandrelli 178546ac3e [HTML5] Fix broken layout on load in HiDPI screens
This was caused by the devicePixelRatio being applied twice, once by the
HTML code, once by the OS code.
More specifically, OS.get_window_size() would return the canvas element
size, while OS.set_window_size() would set the element size to the
specified value times the devicePixelRatio.
Calling OS.set_window_size(OS.get_window_size()) would reapply the
devicePixelRatio every time.
This commit changes the behaviour so that OS.set_window_size() do not
apply the devicePixelRatio to the canvas element size, by it divides the
CSS size instead.
2020-11-30 12:07:20 +01:00
Fabio Alessandrelli 742729ccfe [HTML5] Remove file flags from writeFile in setup.
Flags where deprecated and partly in removed in emscripten 2.0.9.
2020-11-30 12:07:20 +01:00
Rémi Verschelde a6751e6c58
Merge pull request #41100 from bruvzg/ctl_text_server_interface
[Complex Text Layouts] Implement TextServer interface.
2020-11-28 09:03:15 +01:00
PouleyKetchoupp 6b97901d4d Implement INCR mechanism for Linux clipboard
Allows pasting from x11 clipboard to receive data incrementally, which
is required when handling data size > 256KB.
2020-11-27 10:00:09 -07:00
bruvzg 99666de00f
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
bruvzg b9f441e81e
[Complex Text Layouts] Add third-party TextServer dependencies (ICU, HarfBuzz, Graphite). 2020-11-26 13:55:27 +02:00
Rémi Verschelde a4e04cdd47
Merge pull request #42652 from nekomatata/x11-clipboard-save-targets
Implement SAVE_TARGETS mechanism for Linux clipboard
2020-11-26 09:34:18 +01:00
Rémi Verschelde 09f3053450
SCons: Do not define TYPED_METHOD_BIND on Linux/clang
It's now only needed for MSVC.
2020-11-25 19:27:30 +01:00
Rémi Verschelde 4159baff6c
Merge pull request #42648 from naithar/fix/native_video_view
[iOS] Native video fixes
2020-11-24 10:41:01 +01:00
Rémi Verschelde 617031434f
Merge pull request #43803 from m4gr3d/update_signing_and_zipalign_logic_master
Update gradle build files to automatically perform signing and zipalign tasks for custom builds
2020-11-24 08:39:06 +01:00
Fabio Alessandrelli 4617a7fa9c [HTML5] Run eslint --fix.
Should I write a poem about this whole new world? ;)
2020-11-23 12:15:18 +01:00
Fabio Alessandrelli c38984d286 [HTML5] Enforce JavaScript style with eslint.
Applies to javascript files inside the platform library folder, the
exposed Engine code, and any javascript files in modules.

Files ending with ".externs.js" will be ignored, you can create a
".eslintignore" file to specify extra files to be ignored.
2020-11-23 12:15:18 +01:00
Fredia Huya-Kouadio 918b218b55 Update gradle build files to automatically perform signing and zipalign tasks for custom builds. 2020-11-22 18:11:54 -08:00
Fabio Alessandrelli a82f70ea9f [HTML5] Libraries refactor for linting.
Initial work to make liniting easier.

This includes:
- Rename http_request.js to library_godot_http_request.js.
- Rename externs.js to engine.externs.js.
- New library_godot_runtime.js (GodotRuntime) wraps around emscripten
  functions.
- Refactor of XMLHttpRequest handler in engine/preloader.js.
- Few fixes to bugs spotted by early stage linting.
2020-11-21 14:22:40 +01:00
Rémi Verschelde 504efc5f9b
Export: Reorder options for consistency across platforms 2020-11-20 11:17:50 +01:00
Rémi Verschelde f69339c2c2
Merge pull request #43692 from akien-mga/scons-leave-link-alone
SCons: Remove unnecessary $LINK overrides
2020-11-19 20:43:25 +01:00
Rémi Verschelde 2e4bff1cfe
SCons: Remove unnecessary $LINK overrides
As of SCons 4.0.1, the default value for $LINK is $SMARTLINK, which itself
is a function that will use $CXX as linker for C++:

https://github.com/SCons/scons/blob/4.0.1/SCons/Tool/link.py#L327-L328
https://github.com/SCons/scons/blob/4.0.1/SCons/Tool/link.py#L54-L76

So we don't need to manually specify the same value as $CXX for $LINK.
2020-11-19 16:48:03 +01:00
Rémi Verschelde dbbbb53927
OSX: Fix linking with osxcross for arm64
For some reason the `-target` option on the `LINKFLAGS` was causing a weird
issue where osxcross' clang wrapper would attempt using the system `/bin/ld`
instead of the osxcross version (which is Apple's `ld64`).

The error message would be:
```
/bin/ld: unrecognized option '-dynamic'
```

Also removed from `CCFLAGS` for consistency, it seems to work fine with only
`-mmacosx-version-min`.
2020-11-19 16:32:32 +01:00
Fredia Huya-Kouadio c4f2d87747 Fix zipalign command name on Windows machines. 2020-11-18 23:30:45 -08:00
Marcel Admiraal f42284ed07 Add missing javascript semi-colons. 2020-11-17 18:18:46 +00:00
Aaron Franke 02161aad5a
Remove empty lines around braces with the formatting script 2020-11-16 23:38:11 -05:00
Rémi Verschelde 900e5ffdd8
Merge pull request #43595 from mbrlabs/windows-execute-fix
Fixed exit code retrieval of spawned processes on Windows
2020-11-16 22:16:25 +01:00
Rémi Verschelde 484c3d5e27
Merge pull request #43248 from HEAVYPOLY/master
Change android orientations from sensor to user
2020-11-16 22:12:53 +01:00
Marcus Brummer f0f4220b05 Fixed exit code retrieval of spawned processes on Windows
Use GetExitCodeProcess() on Windows to retrieve the exit code of a process in
OS:excute()
2020-11-16 18:30:33 +01:00
Rémi Verschelde e5dfb9b25e
Merge pull request #43556 from naithar/feature/pluggable_app_delegates
[4.0] [iOS] Pluggable application delegate
2020-11-16 17:02:16 +01:00
Rémi Verschelde 7610945b4a
Merge pull request #43461 from ccl2of4/fix-linux-joypad-dpad-zeroing
Fix for linux joypad D-pad zeroing
2020-11-16 14:46:43 +01:00
Rémi Verschelde 8d92135091
Merge pull request #43545 from bruvzg/xchangeprop_atoms_check
Add XChangeProperty atoms validity checks.
2020-11-16 08:01:54 +01:00
bruvzg 319bc5ffda
Add XChangeProperty Atoms validity checks. 2020-11-15 22:20:14 +02:00
Sergey Minakov 2d8c311c01 iOS: fix keyboard display 2020-11-15 16:22:57 +03:00
Sergey Minakov 3f7ca1db70 iOS: Implement pluggable application delegate. 2020-11-15 14:26:44 +03:00
Fredia Huya-Kouadio 46cc3233d8 Update the logic to query for the 'scons' command executable path. 2020-11-14 14:36:53 -08:00
Rémi Verschelde 9e7348f788
Merge pull request #43526 from m4gr3d/address_new_custom_build_logic_issues
Address new custom build logic issues
2020-11-14 22:58:16 +01:00
Fredia Huya-Kouadio 5f6a44f0bb Add missing zip alignment step for generated apks. 2020-11-14 13:10:38 -08:00
Fredia Huya-Kouadio 3de720c11d Fix issue causing `Export all` to fail. 2020-11-14 13:10:38 -08:00
Fredia Huya-Kouadio 3c1a1a760e Clear unneeded assets when generating an apk expansion.
Clean up export wording to account for the different export formats.
2020-11-14 13:07:32 -08:00
bruvzg f09a37a8d5
Fixes crash if Vulkan presentation surface is not available. 2020-11-14 13:41:13 +02:00
Marcus Brummer e1b9be4a6b Added the .jks file extension as valid preset for Android keystore files 2020-11-14 00:29:23 +01:00
Fredia Huya-Kouadio 597d9409f3 Remove duplicate Android `orientation` settings. 2020-11-13 12:20:06 -08:00
bruvzg fed776c64c
Add X11 Atom validity checks. 2020-11-12 16:10:17 +02:00
Connor Lirot dd021099ff Fix for linux joypad D-pad zeroing
Some controllers (notably those made by 8bitdo) do not always emit an event to zero out a D-pad axis before flipping direction. For example, when rolling around aggressively the D-pad of an 8bitdo SN30 Pro/Pro+, the following may be observed:

```
ABS_HAT0X : -1
ABS_HAT0Y : -1
ABS_HAT0Y : 0
ABS_HAT0Y : 1
ABS_HAT0X : 1
```

Notable here is that no event for `ABS_HAT0X: 0` is emitted between the events for `ABS_HAT0X: -1` and `ABS_HAT0X: 1`. Consequently, the game engine believes that both the negative _and_ positive x-axis directions of the D-pad are activated simultaneously (i.e `is_joy_button_pressed()` returns `true` for both `JOY_BUTTON_DPAD_LEFT` and `JOY_BUTTON_DPAD_RIGHT`), which should be impossible.

This issue is _not_ reproducible on all controllers. The Xbox One controller in particular will not exhibit this problem (it always emits zeroing out events for an axis before flipping direction).

The fix is to always zero out the opposite direction on the D-pad axis in question when processing an event with a nonzero value. This unfortunately wastes a small number of CPU cycles on controllers that behave nicely.

**I have verified this issue is also reproducible in the stable 3.2 branch**
2020-11-11 13:54:46 -06:00
Rémi Verschelde 10fd107599
Merge pull request #43443 from Faless/js/4.0_audio_worklet
[HTML5] Port inline JS code to libraries, AudioWorklet support.
2020-11-11 10:07:28 +01:00
Fabio Alessandrelli 179ec3ca0e [HTML5] AudioWorklet API implementation.
Rewrote AudioDriverJavaScript to support multiple processor nodes.
The old (and deprecated) ScriptProcessorNode when threads are not
available, and the new AudioWorklet API when threads are enabled.

The new implementation uses two ring buffers and a shared state to
communicated with the AudioWorklet thread.

The audio.worklet.js JavaScript file is always added to the export
template, but only really used (and downloaded) in the thread build.
2020-11-10 18:56:21 +01:00
Sergey Minakov 1f2f477e1e iOS Export: support multi-target plugin
Plugins can use 'binary_name.a' or 'binary_name.release.a' and 'binary_name.debug.a' for plugin library.
2020-11-10 16:40:06 +03:00
Sergey Minakov 1f94a59859 iOS Export: export modification to support plugins
Added plugin configuration.
Export options now use plugins that could be enabled/disabled.
Plugin changes are observed at runtime.
2020-11-10 16:40:01 +03:00
Sergey Minakov 70f492082e iOS: change platform code to support plugins 2020-11-10 16:28:36 +03:00
Sergey Minakov 30783d57cc iOS Modules: separate main platform code from modules
Moved previously builtin modules 'GameCenter', 'AppStore', 'iCloud' to separate modules to be represented as plugin.
Modified 'ARKit' and 'Camera' to not be builtin into engine and work as plugin.
Changed platform code so it's not affected by the move.
Modified Xcode project file to remove parameters that doesn't make any effect.
Added basic '.gdip' plugin config file.
2020-11-10 16:28:29 +03:00
Fabio Alessandrelli e2083871eb [HTML5] Port JavaScript inline code to libraries.
The API is implemented in javascript, and generates C functions that can
be called from godot.
This allows much cleaner code replacing all `EM_ASM` calls in our C++
code with plain C function calls.
This also gets rid of few hacks and comes with few optimizations (e.g.
custom cursor shapes should be much faster now).
2020-11-10 11:42:51 +01:00
Fabio Alessandrelli 54cda5c3b8 [HTML5] Update syntax for lto. 2020-11-10 11:42:51 +01:00
Rémi Verschelde 827e5b8bf3
Merge pull request #43412 from akien-mga/variant-rename-_RID-to-RID
Variant: Rename Type::_RID to Type::RID
2020-11-09 17:46:34 +01:00
Rémi Verschelde 9d2e8f2f27
Variant: Rename Type::_RID to Type::RID
The underscore prefix was used to avoid the conflict between the `RID` class
name and the matching enum value in `Variant::Type`.

This can be fixed differently by prefixing uses of the `RID` class in `Variant`
with the scope resolution operator, as done already for `AABB`.
2020-11-09 16:29:04 +01:00
Hugo Locurcio ff1f0d2cb5
Remove `debug_symbols=full` in favor of `debug_symbols=yes`
`debug_symbols=yes` will now behave like `debug_symbols=full` did
before. The difference in compressed file sizes is not that large,
which means there isn't much point in having two different values.

This helps make the buildsystem easier to understand.
2020-11-09 15:48:30 +01:00
reduz 127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
Fabio Alessandrelli b3453e866b [HTML5] Fix audio buffer size and latency hint.
The size of the audio buffer was incorrectly doubled when creating the
script processor.
latencyHint is expressed in seconds, not milliseconds.
Additionally, on some browsers it actually affect the performance and
stability of the audio driver.
For this reason it has been completely disabled (interactive) and a not
has been left for future reference.
2020-11-06 15:38:47 +01:00
Rémi Verschelde df2abc55be
Merge pull request #43353 from madmiraal/fix-43352
Use LONG instead of DWORD (unsigned int) when interacting with DIJOFS constants
2020-11-06 12:46:36 +01:00
unknown 4a6e53b3c9 Use LONG instead of DWORD (unsigned int) when interacting with DIJOFS constants. 2020-11-06 10:17:28 +00:00
Rémi Verschelde 1abe52e611
Merge pull request #43051 from Ev1lbl0w/bugfix-path-inconsistency
Changed path behaviour for Windows
2020-11-06 10:18:21 +01:00
Vaughan Ling d658063833 Change android orientations from sensor to user
# Conflicts:
#	platform/android/java/lib/src/org/godotengine/godot/GodotIO.java
2020-10-31 17:14:32 -07:00
bruvzg 4efcec3545
[iOS] Add missing ARC flag to the simulator build. 2020-10-30 18:47:42 +02:00
Rémi Verschelde 41f66761fd
Merge pull request #37158 from thebestnom/android-click-support
Support mouse events on Android
2020-10-30 16:00:03 +01:00
Fredia Huya-Kouadio edf762fba6 Add a separate `nativeSrcsConfigs` module to handle Android Studio constraints for native code editor support. 2020-10-29 00:01:14 -07:00
Fredia Huya-Kouadio aff7cf4390 Update the gradle plugins 2020-10-28 23:59:33 -07:00
Rémi Verschelde 2eaedcf14e
Merge pull request #42361 from akien-mga/vulkan-layers-opt-in
Vulkan: Make validation layers optional
2020-10-28 21:43:22 +01:00
Rémi Verschelde 45da7d579a
Merge pull request #43153 from nekomatata/android-build-version-close
Release .build_version file handle in Android custom build export
2020-10-28 10:03:18 +01:00
Rémi Verschelde 765b0a0f31
Merge pull request #43053 from Ev1lbl0w/bugfix-shell-open
Changed shell_open behaviour
2020-10-28 09:17:57 +01:00
PouleyKetchoupp b271315bac Release .build_version file handle in Android custom build export 2020-10-28 09:07:20 +01:00
Mark Riedesel 96e22bd9fb Implement OS.get_window_safe_area() for Android 2020-10-27 13:14:00 -04:00
Rémi Verschelde 54e6338c9b
Vulkan: Make validation layers optional
They're now disabled by default, and can be enabled with the command line
argument `--vk-layers`.

When enabled, the errors about them being missing are now warnings, as
users were confused and thought this meant Vulkan is broken for them.

Fix crash in `~VulkanContext` when validation layers are disabled (exposed by
this PR since before they could not be disabled without source modification).

Also moved VulkanContext member initializations to header.

Fixes #37102.
2020-10-27 16:19:15 +01:00
Ev1lbl0w 9e57a395cf
Changed shell_open behaviour 2020-10-26 13:26:39 +00:00
Ev1lbl0w 525a5be01d
Changed path behaviour for Windows 2020-10-24 14:14:53 +01:00
Mark Riedesel 5fe902244a Fix android apk contents having mtime 1 month in future
minizip documentation describes tm_mon as expecting the number of months
since January - [0, 11], but the month returned by OS.get_date() is in
the range of [1, 12].
2020-10-23 15:05:48 -04:00
Rémi Verschelde 181082589a
Merge pull request #42772 from bruvzg/macos_inertia
[macOS] Suppress momentum scrolling after key press.
2020-10-20 15:10:56 +02:00
Rémi Verschelde 15ff276fcf
Merge pull request #42853 from naithar/fix/in-app-store-master
[4.0] [iOS] InAppStore fixes
2020-10-20 15:10:15 +02:00
reduz ee06a70ea6 Refactor MethodBind to use variadic templates
Removed make_binders and the old style generated binders.
2020-10-18 12:28:44 +02:00
Sergey Minakov 21bcf3f793 iOS: fix in app store
Enforce strong reference for SKRequests and delegate objects for transactions to work correctly
2020-10-16 16:14:39 +03:00
Fabio Alessandrelli c54de7f589 [HTML5] Add JavaScriptToolsEditorPlugin.
A new editor plugin, specific to HTML5, that provide some extra features
needed to make the editor usable on that platform.

For now, it adds a "Download project sources" option in the "Tool" menu,
so the user can download the work done as a zip file (from the browser
storage).
2020-10-14 12:31:20 +02:00
Fabio Alessandrelli 3dfb769115 Add JavaScript editor html file. 2020-10-14 11:20:50 +02:00
Fabio Alessandrelli ec396c7707 [HTML5] Close IDBFS database on exit.
This should be made available in emscripten in a decent way.
Possibly after unmount, to free the database lock and allow performing
operations on it from javascript after the Emscripten Runtime has
exited.
2020-10-14 11:20:37 +02:00
Fabio Alessandrelli 6769dd64fc [HTML5] Expose request_quit via Engine class.
So it can be called when closure compiler is enabled.
2020-10-14 11:15:24 +02:00
Fabio Alessandrelli c3b7c5cc2d Increase HTML5 THREADPOOL size.
This fixes a "random" deadlock when quitting the editor.
I still haven't figure out the root cause, but having a bigger seems to
greatly mitigate the issue.
The new pool size (pre-allocated threads) is now 8.
2020-10-14 11:13:12 +02:00
bruvzg 801f0a041f
[macOS] Suppress momentum scrolling after key press or modifier change to prevent unexpected change of action. 2020-10-13 18:58:55 +03:00
PouleyKetchoupp 96e8b904cf Implement SAVE_TARGETS mechanism for Linux clipboard
Allows sending the clipboard content to the clipboard manager on exit to
keep the content when using a clipboard manager that doesn't
automatically makes a backup when copying.

MULTIPLE selection mechanism also had to be implemented, because in this
case, the clipboard manager might request multiple selection targets at
once.

Known use case: Ubuntu with XFCE4
2020-10-09 21:12:56 +02:00
bruvzg 56f3aba7b2
[Windows, MSVC] Correctly set source file encoding. 2020-10-09 13:56:20 +03:00
thebestnom 42513f2f47 Android: Mouse Implementation
Implement mouse
Move touch to inputManager
Change to use android/input.h
2020-10-09 04:14:56 +03:00
Rémi Verschelde 67135f246e
Merge pull request #42647 from nekomatata/x11-unfocus-crash-fix
Fix x11 display server crash when deleting popup window when unfocused
2020-10-08 20:05:06 +02:00
PouleyKetchoupp 48a0d44e67 Fix x11 display server crash when deleting popup window when unfocused
On FocusOut events, the window could be destroyed while propagating
WINDOW_EVENT_FOCUS_OUT event, which causes the WindowData to be
invalidated, and still used for calls to XUnsetICFocus.

This change moves calls to XUnsetICFocus, and also XSetICFocus in
FocusIn events, before propagating the change of focus event to the
engine, to be safe in any case.

Also setting xic member to nullptr after all calls to XDestroyIC to keep
things clean and consistent.

Fixes #42645
2020-10-08 17:22:03 +02:00
unknown 9cb46ed4e7 Fixed an issue in UWP export caused by duplicate entry for extensions in content types file. 2020-10-08 18:44:15 +05:30
Sergey Minakov 6b2483c331 iOS: fix native video
Fixed view not being displayed.
Fixed view orientation change.
2020-10-08 14:30:53 +03:00
Rémi Verschelde 97f116d36b
SCons: Refactor and cleanup warnings definition 2020-10-08 10:58:05 +02:00
Rémi Verschelde 182d6d6f42
SCons: Add windows_subsystem=default, restores original behavior
We want debug builds to have a console and easy stdout redirection by default.
Windows makes reading the stdout/stderr stream from gui applications too cumbersome
(and most users don't know about it, and just wonder why they don't see a thing).
2020-10-06 09:30:46 +02:00
Fabio Alessandrelli 7998745237 [HTML5] Scons now expects "emcc" to be in PATH.
No longer parse emscripten/emsdk config to detect emcc/node paths.
Use WhereIs to find "emcc" and "node", look for "node_modules" in "emcc"
path.
2020-10-04 14:26:44 +02:00
Rémi Verschelde 1ff3e60ee0
Merge pull request #42505 from Faless/js/4.0_audio_threads
[HTML5] Move audio processing to thread when threads are enabled.
2020-10-02 16:25:10 +02:00
Fabio Alessandrelli a618535628 [HTML5] Run Audio process in thread when available
This should fix some of the audio stuttering issues when the HTML5
export is compiled with threads support.
The API should be ported to AudioWorklet to (hopefully) be perfect.
That though, cannot be backported to 3.2 due to extra restriction of
AudioWorklet (which only runs in SecureContext, and needs a polyfill for
Safari).
2020-10-02 14:28:20 +02:00
Sergey Minakov 6ee74de9ee iOS: Native video refactoring
Moved native video handling to separate view.
2020-10-02 15:05:01 +03:00
Sergey Minakov 3cd1cb53a0 iOS: Refactoring
Enabled ARC for iOS.
Weakify/Strongify macros for objc blocks.
Removed old version checks.
Specific types for ObjC++ modules to exclude unneeded bridging.
Separate DeviceMetrics class for device specific data.
Replaced old/deprecated functionality.
2020-10-02 15:04:51 +03:00
Fabio Alessandrelli 80b34ccee1 Add extra suffix for HTML5 thread builds. 2020-10-02 13:35:03 +02:00
Fabio Alessandrelli 5261e5df85 Add COOP/COEP headers to HTML5 "run" server.
This allow the page to be considered a SecureContext if the address is
localhost (127.0.0.1/::1) and let Firefox (and future Chrome versions)
enable extra features needed for the HTML5 threaded export.
2020-10-02 13:35:03 +02:00
bruvzg b0152dcac5
Fix `screen_get_dpi` on macOS for non fractional display scales and restore documentation. 2020-10-01 22:52:20 +03:00
Rémi Verschelde 23ab8ea6f6
Merge pull request #40582 from PoqXert/game-center-4.0
[4.0] iOS Game Center improvements
2020-10-01 13:54:03 +02:00
Sergey Minakov 1d9b6b01db iOS: move touch delay to settings 2020-10-01 12:36:11 +03:00
Rémi Verschelde cc62eaf7be
Merge pull request #41910 from nekomatata/x11-inputs-lag-fix
Fix issues related to delay when processing events on X11 display server
2020-09-30 16:37:44 +02:00
Rémi Verschelde aed16c8f84
Merge pull request #42381 from timothyqiu/osx-hidden
Hide special folders in FileDialog for macOS
2020-09-29 11:49:03 +02:00
Rémi Verschelde 4e19e3603b
Merge pull request #41385 from m4gr3d/fix_splash_loading_master
Fix splash screen loading on Android
2020-09-28 20:45:53 +02:00
Rémi Verschelde e66013a6f1
Merge pull request #42262 from akien-mga/ios-pvrtc-fixes
iOS: Fix multiple issues with PVRTC import, disable ETC1
2020-09-28 10:17:38 +02:00
Rémi Verschelde 0ba4a8ba7b
Merge pull request #42327 from bruvzg/4_mac_captured_fix
[macOS] Fix mouse position in captured mode.
2020-09-28 10:08:05 +02:00
Haoyu Qiu 1998f78679 Hides special folders in FileDialog for macOS 2020-09-28 14:36:21 +08:00
Bartłomiej T. Listwon 317c2b194d Add all headers to VS Project 2020-09-27 18:03:51 +02:00
PouleyKetchoupp 5a0376f969 Fix delay to process clipboard content from Godot in other programs
When pasting clipboard content from Godot to other applications,
multiple SelectionRequest events are sent to Godot in order to access
the data. It could take a long time before the data is ready for the
other app because events were processed one by one on the main thread,
especially when Godot is unfocused and runs at low frequency.

With this change, SelectionRequest events are directly handled on the
separate event polling thread to minimize this delay.

This change also replaces clipboard_get() calls in SelectionRequest with
a direct access to internal_clipboard, since in this case we know Godot
is the owner of the clipboard content and it's not necessary to query
the x server for it.
2020-09-25 16:40:04 +02:00
bruvzg f4a2eabf42
[macOS] Fix mouse position in captured mode. 2020-09-25 08:55:07 +03:00
PouleyKetchoupp 2c4d64102a Fix general keyboard input lag on X11 display server
This change makes keyboard inputs more responsive on Linux, especially
when the FPS is lower on slower configurations.

Polling events from the x server is done on a separate thread to avoid a
frame delay with inputs, due to first sending the event to the input
manager with XFilterEvent then processing the new event only on the next
frame.

Calls to Input Manager functions like XSetICFocus, XUnsetICFocus and
XSetICValues use a mutex, because they are polling events internally and
would otherwise interfere with our own thread process for polling events
which can cause a deadlock in some cases.

XUnsetICFocus is called instead of XSetICFocus on FocusOut events,
so the input manager can be properly notified of focus changes.

clipboard_get now uses a blocking call to poll for a specific event type
when waiting for a SelectionNotify event, instead of polling all events
and filtering them afterwards.
2020-09-24 16:01:41 +02:00
Vasiliy Makarov 313006adb8 iOS: Fix multiple issues with PVRTC import, disable ETC1
Fixes: #28683, #28621, #28596 and maybe others

For iOS we enable pvrtc feature by default for all backends
Etc1 for iOS doesn't have any sense, so it disabled.
Fixed checks in export editor.
Fixed pvrtc encoding procedure.

Edit by Akien: Forward-ported from #38076, this may not make sense as is for
Godot 4.0, but it's important that we have the latest code in sync with 3.2
for when more rendering backends and proper iOS support are added back.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2020-09-23 11:22:51 +02:00
Rémi Verschelde c10e8ac1de
Merge pull request #42178 from Faless/js/sync_fs_size_handlers
[HTML5] Synchronous main, better persistence, handlers fixes, optional full screen.
2020-09-23 10:14:22 +02:00
Fabio Alessandrelli dccd71c7a3 JS synchronous start, better persistent FS sync.
The engine now expects to emscripten FS to be setup and sync-ed before
main is called. This is exposed via `Module["initFS"]` which also allows
to setup multiple persistence paths (internal use only for now).

Additionally, FS syncing is done **once** for every loop if at least one
file in a persistent path was open for writing and closed, and if the FS
is not syncing already.

This should potentially fix issues reported by users where "autosave"
would not work on the web (never calling `syncfs` because of too many
writes).
2020-09-23 09:51:06 +02:00
Fabio Alessandrelli 53f04aa1b9 Make canvas resize optional in HTML5. 2020-09-23 09:51:06 +02:00
Fabio Alessandrelli 806edcae5b Better HiDPI support in HTML5. 2020-09-23 09:51:06 +02:00
Fabio Alessandrelli 7d0896e763 Window event listener do not use capture. 2020-09-23 09:51:06 +02:00
Fabio Alessandrelli 48aa0b5b03 Small refactor to JavaScript handlers.
Crated helper class in native/utils.js.
Simplify code in OS/DisplayServer.
2020-09-23 09:51:06 +02:00
Fabio Alessandrelli 7d045b8543 Expose request_quit method to JS in HTML5 export. 2020-09-23 09:51:06 +02:00
Fredia Huya-Kouadio 79c1cf600b Add overridable init method for the Godot fragment instance. 2020-09-18 16:59:09 -07:00
Fabio Alessandrelli 27ab97501b [HTML5] Add override keyword, cleanup methods. 2020-09-18 18:48:59 +02:00
Rémi Verschelde 3e78963bb9
Fix typos with codespell
Using codespell 1.17.1.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2020-09-18 13:44:25 +02:00
Rémi Verschelde 413ff7938d
X11: Try to load libXrandr.so.3 if libXrandr.so.2 isn't found
All Linux distros, and FreeBSD and OpenBSD seem to have libXrandr.so.2,
but for some reason recent NetBSD versions seem to have libXrandr.so.3 now.
2020-09-18 11:55:12 +02:00
Rémi Verschelde 5f4d64f4f3
Linux/BSD: Fix support for NetBSD
Add __NetBSD__ to `platform_config.h` so that it can find `alloca`
and use the proper `pthread_setname_np` format.

Rename RANDOM_MAX to avoid conflict with NetBSD stdlib.

Fixes #42145.
2020-09-18 10:27:55 +02:00
bruvzg 6a14c72b12
Add window click-through support. 2020-09-17 12:36:18 +03:00
Hugo Locurcio 4df86f8b04
Only display the Windows toggle console option if it can actually be used 2020-09-14 21:52:04 +02:00
Marcel Admiraal e3d698dae9 Remove unused Python imports. 2020-09-10 11:38:52 +01:00
Marcel Admiraal 64095245ee Explicitly add implicitly added semicolons. 2020-09-09 15:30:57 +01:00
bruvzg f043eabdd8
Adds PCK encryption support (using script encryption key for export).
Change default encryption mode from ECB to CFB.
2020-09-05 14:53:39 +03:00
bruvzg 80b8eff6aa
[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms. 2020-09-03 19:56:24 +03:00
Rémi Verschelde a77106bf7e
Merge pull request #41332 from bruvzg/win_subsys_option
Revert #41164, add subsystem build option.
2020-09-03 11:52:29 +02:00
PouleyKetchoupp eeebe6914e Fix drag and drop between windows in X11 display server
Proper implementation for get_window_at_screen_position:
Now getting the topmost last active window when overlapping.

Mouse drag & release events:
They are now propagated through the current focused window, in order to
make it consistent with the engine expectations and the Windows display
server implementation.
2020-09-03 10:31:03 +02:00
Rémi Verschelde 2a8531cc56
Merge pull request #41456 from nekomatata/x11-fix-popups
Popup fixes for X11 display server
2020-09-03 00:09:19 +02:00
Fredia Huya-Kouadio b8d5ced8cd Fix issue causing the textedit to move upward 2020-08-30 10:42:38 -07:00
Rémi Verschelde c59e9399e7
Merge pull request #41550 from godotengine/revert-40671-virtual-keyboard-height-fix
Revert "Fix virtual keyboard height regression"
2020-08-27 08:55:51 +02:00
Rémi Verschelde f98b32ff51
Merge pull request #41549 from godotengine/revert-40484-android-virtual-keyboard-adjustment
Revert "Disable virtual keyboard focus adjustment on Android"
2020-08-26 23:48:09 +02:00
Fredia Huya-Kouadio db35a008f6
Revert "Fix virtual keyboard height regression" 2020-08-26 14:38:02 -07:00
Fredia Huya-Kouadio ffd0bb1d02
Revert "Disable virtual keyboard focus adjustment on Android" 2020-08-26 13:27:25 -07:00
Fredia Huya-Kouadio 04b402b6f1
Revert "Move PopupWindow logic to GodotEditText on Android" 2020-08-26 13:24:18 -07:00
PouleyKetchoupp bb306750ce Fix WINDOW_EVENT_FOCUS_IN for popups on Windows
On Windows, WINDOW_EVENT_FOCUS_IN was never sent by the display server
for popups, because WM_ACTIVATE events are received during the call to
_update_window_style, which happened before the callbacks were set.

This was causing some issues with the way Popup is now handling closing on
parent focus.

Now _update_window_style is only called during show_window, after Window
initialized callbacks.
2020-08-26 18:14:36 +02:00
PouleyKetchoupp 5315bff002 Fix menu popups delay and focus in X11 display server
Now using override_redirect for menu & tooltip popups to prevent the WM from
interfering with them, so we have more control over focus management
and avoid a delay before they show up.
2020-08-26 18:14:07 +02:00
bruvzg 9a85948907
[macOS] Fix heap use-after-free in DisplayServer. 2020-08-25 14:04:20 +03:00