Commit Graph

3315 Commits

Author SHA1 Message Date
Wilson E. Alvarez 1b8a9d56b3
Set default priority on PRIME detection vendor struct. 2021-12-17 15:12:17 -05:00
bruvzg b4ec1c5817
Backport: Allow for mapping scancodes to current layout
Co-authored-by: Frixuu <kontakt@lukasz.xyz>
2021-12-17 13:04:47 +02:00
Sam Lantinga 9efdac2761
Fixed detecting the Valve Streaming Gamepad
Fixed the GUID, and compare the contents of the GUID, not just the pointers

(cherry picked from commit 8df0baf6f5)
2021-12-17 00:14:50 +01:00
Rémi Verschelde 62b181a4ef
Merge pull request #55967 from bruvzg/wt💩3 2021-12-16 23:05:40 +01:00
Marcel Admiraal b5d325e6ff Only rotate Android sensor values for sensors that need them rotated 2021-12-15 18:15:25 +00:00
bruvzg 9aef3a93dd
[Windows] Detect new Windows Terminal and disable unsupported set_console_visible code. 2021-12-15 20:00:35 +02:00
bruvzg 38c1706a7d
[Windows] Open a new console window for the editor instances. 2021-12-14 14:38:42 +02:00
Aaron Franke 7bf7bd70ac
[3.x] Misc build system fixes 2021-12-10 12:15:16 -06:00
Rémi Verschelde 45aac0b9e9
Merge pull request #55768 from m4gr3d/config_hand_tracking_frequency_3x 2021-12-09 23:05:06 +01:00
Fredia Huya-Kouadio 4f6ce8a7ba
Enable configuration of the `android:excludeFromRecents` activity attribute.
(cherry picked from commit cfa81ff32a)
2021-12-09 23:03:19 +01:00
Rémi Verschelde 599ae423ba
Merge pull request #55735 from m4gr3d/add_min_target_sdk_configs 2021-12-09 23:01:56 +01:00
ne0fhyk 9d22ad3c9b Add support for configuring the xr hand tracking frequency mode 2021-12-09 12:26:06 -08:00
Luis Sanchez e00d20aa5a
Fix files_dropped in HTML5 export.
(Ignore trailing slash when creating the temporary directory)

(cherry picked from commit 40f26cb260)
2021-12-09 12:05:44 +01:00
Fredia Huya-Kouadio 65cfa28cce Add configs to specify the min and target sdk versions. 2021-12-08 09:06:09 -08:00
bruvzg 9968d0feea
[macOS] Fix crash handler not printing function names on M1 Macs.
(cherry picked from commit c8037ef2e5)
2021-12-08 10:37:49 +01:00
Fabio Alessandrelli 53ce3f64ad
[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.

(cherry picked from commit 470496d8d4)
2021-11-30 12:20:19 +01:00
bruvzg f72cc71ebe
[macOS] Fix driver crash when enabling per-pixel transparency on M1 macs. 2021-11-30 11:44:13 +02:00
Fabio Alessandrelli d205d5a5c9
[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.

(cherry picked from commit eaedc92c61)
2021-11-29 16:11:56 +01:00
Fabio Alessandrelli bbfe054175 [HTML5] Use compatibility function for glGetBufferSubData.
The "webgl/webgl2.h" include provides that function, but it's not
available in emscripten versions < 2.0.17 .

Since we need to support emscripten 1.39.9 (mono builds), this commit
adds a JS function in library_godot_display.js as a compatibility layer
for it, and implement glGetBufferSubData by funneling the call to that
function (so we don't have name collisions JS-side with recent emcc).

All those hacks are now moved to the platform directory instead of being
ifdefs inside the drivers implementations.
2021-11-26 15:58:04 +01:00
Fabio Alessandrelli f11bed249b
[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.

(cherry picked from commit 63e2db2499)
2021-11-26 10:42:56 +01:00
Rémi Verschelde 451bba967a
Merge pull request #55158 from m4gr3d/add_oculus_openxr_config_3x 2021-11-22 10:29:49 +01:00
Marcel Admiraal 05744ee0e2 Fix Android `get_screen_orientation()` not returning valid values 2021-11-21 12:14:29 +00:00
Fredia Huya-Kouadio 9c50bcabed Add support for OpenXR export configurations. 2021-11-20 06:59:36 -08:00
Fabio Alessandrelli f56b1a5af5
[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.

(cherry picked from commit 91dbc288cc)
2021-11-20 11:46:13 +01:00
Fabio Alessandrelli 1066b60781
[HTML5] Fix input not focusing canvas.
mousedown and touchstart should focus the canvas to ensure correct
application lifecycle.

(cherry picked from commit f13c7fc83e)
2021-11-20 11:46:09 +01:00
Rémi Verschelde b0f721283d
Merge pull request #54089 from madmiraal/remove-unimplemented-methods-3.x 2021-11-18 15:51:15 +01:00
kobewi a58736f129
Fix data directory of unnamed projects
(cherry picked from commit f6d16d55c6)
2021-11-18 13:47:52 +01:00
Marcel Admiraal 4d3690eba5 Remove unimplemented methods 2021-11-18 12:47:36 +00:00
Rémi Verschelde 2da3f80128
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.

(cherry picked from commit 64d7df1e5f)
2021-11-18 12:15:05 +01:00
Will Jordan 7e6bf27597
Fix crash on macOS (AS) when dualshock4 is removed
(cherry picked from commit 283e31a3e2)
2021-11-17 16:37:33 +01:00
Rémi Verschelde 3ac698750b
Merge pull request #54998 from akien-mga/3.x-cherrypicks 2021-11-15 18:13:56 +01:00
Rémi Verschelde 77416d5806
Merge pull request #54431 from RandomShaper/fix_gl3_32bits_3.x 2021-11-15 17:54:31 +01:00
Rémi Verschelde 26e582b170
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).

(cherry picked from commit 11d1319afd)
2021-11-15 17:22:47 +01:00
Daniel Kolesa 5fe78a3a25
Add support for PowerPC family
(cherry picked from commit 3a84a64d2f)
2021-11-15 17:22:46 +01:00
bruvzg d30b5725a3
[Export] Read and ZIP project files in 16K chunks instead of reading the whole file at once.
(cherry picked from commit c8f3dd776b)
2021-11-15 16:09:59 +01:00
Pedro J. Estébanez 4f8bc77a4c Drop broken Android 32-bit framebuffer setting 2021-11-15 10:44:41 +01:00
Hugo Locurcio fde50db399
Fix outdated SCons macOS build message
The message incorrectly stated that the minimum supported version
is 10.9, when it is in fact 10.12.
2021-11-12 23:05:54 +01:00
Rémi Verschelde 1f8497d281
Merge pull request #53411 from RandomShaper/ubershaders_3.x 2021-11-09 13:12:44 +01:00
Pedro J. Estébanez abdf931832 Add off-screen GL context 2021-11-09 12:19:12 +01:00
Rémi Verschelde 98a1e4fbd7
Merge pull request #54526 from bruvzg/opengl_mt 2021-11-09 00:10:20 +01:00
Rémi Verschelde c7c592f832
Merge pull request #54314 from nekomatata/x11-events-log-3.x 2021-11-09 00:03:39 +01:00
Pedro J. Estébanez 25f01cb09d Implement get_cache_path() for iOS, and improve it for Android and Windows 2021-11-08 22:33:54 +01:00
bruvzg f997a5f8f6 [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:34:14 +02:00
bruvzg 2e74bacf17 [iOS export] Capture and display xcodebuild output. 2021-11-07 11:06:21 +02:00
Fredia Huya-Kouadio 724ef83971 Add default `minSdkVersion` and `targetSdkVersion` in the AndroidManifest.xml file 2021-11-03 21:49:22 -07:00
bruvzg 28d7b585c9 [macOS] Enable multithreaded OpenGL engine flag when using multithreaded VisualServer. 2021-11-02 23:50:27 +02:00
Rémi Verschelde 2c47e33905
Merge pull request #54313 from nekomatata/x11-fix-input-delay-3.x 2021-11-02 08:53:06 +01:00
Rémi Verschelde bf59549f68
Merge pull request #54394 from robfram/freebsd-llvm-no-atomic-lib 2021-11-01 22:30:13 +01:00
bruvzg ed25a160ea [macOS] Always execute editor instances using NSWorkspace to ensure app window is registered and activated correctly. 2021-11-01 11:33:30 +02:00
robfram 2c8014e565 Exclude atomic lib under FreeBSD using LLVM 2021-10-29 18:24:57 +02:00
Rémi Verschelde 14ef65e49b
Merge pull request #54348 from akien-mga/3.x-clang-format-dont-align-operands 2021-10-28 15:43:15 +02:00
Rémi Verschelde 87c80f529f
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 14:50:33 +02:00
Rémi Verschelde 1b65550ec7
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 14:50:32 +02:00
Rémi Verschelde 42d385b312
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 13:23:38 +02:00
Aaron Franke 18b1de1983
[3.x] Add RISC-V to "server" platform 2021-10-27 13:57:37 -05:00
PouleyKetchoupp 2a638a9cdf Add X11 events logging for debug purpose
Compiled out by default, just to be used for debugging local builds.
2021-10-27 10:37:46 -07:00
PouleyKetchoupp 874c9ae89a 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 10:19:16 -07:00
Rémi Verschelde c7f4e1d5dd
Android: Properly validate `godot_project_name_string` for Android special chars
Fixes #52659.

(cherry picked from commit 9204a3a50e)
2021-10-26 18:23:47 +02:00
Marcel Admiraal 4febf69f2a
Fix Gradle builds not excluding excluded tasks
(cherry picked from commit f80cb4dffa)
2021-10-24 01:43:44 +02:00
Rémi Verschelde f5e6a2624c
JS: Bump ansi-regex version for linter
Silences warning about a moderate security vulnerability (which doesn't affect us).

(cherry picked from commit 5f7bbc2b57)
2021-10-23 12:04:17 +02:00
Aaron Franke 5659120af3
[3.x] 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:23 -05:00
Rémi Verschelde ae5cdf3b86
Merge pull request #53991 from Faless/js/3.x_gles3_editor 2021-10-20 10:40:46 +02:00
Fabio Alessandrelli 3a61d0990e [HTML5] Editor video driver option. Replace canvas on exit.
Default is "Auto", but can be forced to a specific WebGL version if the
automatic detection fails.

The game and editor canvas are now replaced with a new one in the exit
hooks. This helps the browser do some context cleanup, and allow us to
create a new context of a different type (WebGL/WebGL2).

Enable GLES3/WebGL2 in the Web Editor.
2021-10-19 15:52:02 +02:00
Rémi Verschelde da5c843bd1
Merge pull request #53986 from madmiraal/remove-unused-variables-3.x 2021-10-19 12:18:21 +02:00
Marcel Admiraal fe9fd5c5ce Remove unused variables 2021-10-18 18:51:05 +01:00
Fabio Alessandrelli 11d1b0387e
[HTML5] Bump initial memory for Web editor
More memory is needed because the editor became bigger with the addition
of class reference translations.

(cherry picked from commit 1446cfd13d)
2021-10-18 16:09:04 +02:00
Ignacio Roldán Etchevery 24fb09614d 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:30:09 +02:00
Rémi Verschelde 9657559b66
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.

(cherry picked from commit cd21cc683a)
2021-10-15 12:54:16 +02:00
Marcel Admiraal fd942cd465
Upgrade Android Gradle to version 7.2
(cherry picked from commit 95b1275197)
2021-10-15 12:51:43 +02:00
ne0fhyk 754db65a1f
Pass the correct `export_format` argument to locate the assets directory when exporting.
(cherry picked from commit 431ccdb057)
2021-10-11 18:04:16 +02:00
Omar Polo 04c08d1f8c
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!

(cherry picked from commit a3384b7461)
2021-10-10 12:27:51 +02:00
Rémi Verschelde df69945f1f
Merge pull request #52714 from m4gr3d/provide_getter_for_project_data_dir_3x 2021-10-05 21:02:41 +02:00
Fabio Alessandrelli adef4ed958 [HTML5] Remove "maximize" support.
I don't think anyone is actively using it, and it's a lot of convoluted
code.
2021-10-05 15:13:41 +02:00
Fabio Alessandrelli d61fc468a2 [HTML5] Refactor JS library listeners to OS. 2021-10-05 15:13:41 +02:00
Fabio Alessandrelli 5e2e54a4b4 [HTML5] Refactor display/input JS library code. 2021-10-05 15:13:41 +02:00
Fabio Alessandrelli c54f5b90e6 [HTML5] Implement Pointer Lock API in JS library.
Removes more emscripten HTML5 library dependencies.
2021-10-05 15:13:41 +02:00
Fabio Alessandrelli 89c6aaa96d [HTML5] Implement window blur in JS library.
Removes more emscripten HTML5 library dependencies.
2021-10-05 15:13:41 +02:00
Fabio Alessandrelli ac78e7f940 [HTML5] Implement fullscreenchange in JS library.
Removes more emscripten HTML5 library dependencies.
2021-10-05 15:13:41 +02:00
Fabio Alessandrelli b7ac3c1aeb [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 15:13:41 +02:00
Rémi Verschelde d01c660954
Merge pull request #52964 from Pineapple/WIN32_LEAN_AND_MEAN 2021-10-05 12:03:52 +02:00
Jordan Schidlowsky db44406082
revert 0d7409a so additional error information prints in release builds
(cherry picked from commit b78d399f91)
2021-10-05 10:56:53 +02:00
Rémi Verschelde e292d79fb3
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 https://github.com/godotengine/godot-proposals/issues/3371.
2021-10-04 11:25:02 +02:00
Rémi Verschelde 7c9e06f936
Merge pull request #48686 from bruvzg/bundle_icon_3 2021-09-30 14:55:41 +02:00
Rémi Verschelde b7901c773c
bullet: Sync with upstream 3.17
Stop include Bullet headers using `-isystem` for GCC/Clang as it misleads
SCons into not properly rebuilding all files when headers change.

This means we also need to make sure Bullet builds without warning, and
current version fares fairly well, there were just a couple to fix (patch
included).

Increase minimum version for distro packages to 2.90 (this was never released
as the "next" version after 2.89 was 3.05... but that covers it too).
2021-09-29 16:30:34 +02:00
Fabio Alessandrelli acb748e66f
Merge pull request #52973 from selgesel/patch2
[3.x] Release pressed events when the window is blurred on HTML5 platform
2021-09-29 13:11:56 +02:00
Rémi Verschelde bf65c0e479
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.

(cherry picked from commit 23b51a1708)
2021-09-29 10:54:01 +02:00
Selgesel c918b4d246 [3.x] Release pressed events when the window is blurred on HTML5 platform 2021-09-23 16:44:03 +03:00
Bartłomiej T. Listwon f463e612a1 Add missing WIN32_LEAN_AND_MEAN 2021-09-23 10:36:31 +02:00
bruvzg 131f913747
Improve `OS::get_locale()` on macOS and Windows, replace "-" with "_" and use system macros instead of bitwise AND. Add locale format info to the documentation.
(cherry picked from commit f797e1c078)
2021-09-21 20:33:11 +02:00
Ricardo Subtil 5167a0281a
Fix shell_open not returning errors on Windows
(cherry picked from commit c4787a8e6d)
2021-09-21 20:33:11 +02:00
Hugo Locurcio 8a6bc045ea
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.

(cherry picked from commit 1513aa9b26)
2021-09-21 17:14:59 +02:00
Rémi Verschelde c906afe045
HTML5: Handle GODOT_VERSION_STATUS env var in @GODOT_VERSION@
Follow-up to #51002.

(cherry picked from commit 16f49d4b29)
2021-09-21 17:14:58 +02:00
Rémi Verschelde 8a48be6980
Merge pull request #52650 from Faless/js/3.x_audioworklet_nothreads_pr
[3.x] [HTML5] Refactor audio drivers. Implement AudioWorklet w/o threads.
2021-09-21 10:44:14 +02:00
Rémi Verschelde b37776fa2f
Merge pull request #52591 from timothyqiu/error-macros
[3.x] Remove do{ } while(0) wrapper around error macros
2021-09-21 10:38:34 +02:00
Fabio Alessandrelli 2024200182 [HTML5] Refactor audio drivers. Implement AudioWorklet w/o threads.
Performances are not great in general, bad on Firefox, on Chrome, well,
it's an improvement compared to the way they broke ScriptProcessorNode.

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-20 14:53:27 +02:00
Marcel Admiraal cce7e6c9d6
Use current androidx Fragment library instead of legacy libraries
(cherry picked from commit 23311a6ed3)
2021-09-19 11:37:19 +02:00
Daniel Kariv ca2372164b
fix fullscreen issue on macOS
adds a call for resize event.

(cherry picked from commit 52b114bc78)
2021-09-19 11:30:21 +02:00
PouleyKetchoupp 1454d6c670
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.

(cherry picked from commit 0b681d5834)
2021-09-19 11:30:21 +02:00
Fabio Alessandrelli b7f466012c
[HTML5] Fix bug in AudioWorklet when reading output buffer.
Would attempt an out of bounds read, causing an exception.

(cherry picked from commit ba08f39e47)
2021-09-19 11:30:21 +02:00
Hugo Locurcio f2ab6bd01c
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.

(cherry picked from commit 4c5deea83e)
2021-09-19 11:30:20 +02:00