Commit graph

2871 commits

Author SHA1 Message Date
bruvzg
bc25b80c0f
[macOS / ARM64] Remove "-msse2" flag from ARM64 release export template build.
(cherry picked from commit 09f301029a)
2020-11-19 17:14:56 +01:00
PouleyKetchoupp
336506a273
OSX: Fix compiling for arm64 with OSXCross
(cherry picked from commit 08b0fd4330)
2020-11-19 17:14:52 +01:00
bruvzg
718ff146e0
Fix focus loss on macOS. 2020-11-19 11:55:25 +02:00
Pedro J. Estébanez
0642f3efeb Ignore query to maximize/minimize window on Windows and X11
This makes these platform behave as MacOS in that regard and also fixes the editor window appearing in some cases even when --no-window has been passed.
2020-11-18 00:33:39 +01:00
Marcel Admiraal
e1b72e1943
Add missing javascript semi-colons.
(cherry picked from commit f42284ed07)
2020-11-17 22:25:32 +01:00
Marcus Brummer
a822bb9844
Fixed exit code retrieval of spawned processes on Windows
Use GetExitCodeProcess() on Windows to retrieve the exit code of a process in
OS:excute()

(cherry picked from commit f0f4220b05)
2020-11-17 12:07:02 +01:00
Connor Lirot
1e01963d29
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**

(cherry picked from commit dd021099ff)
2020-11-17 12:07:01 +01:00
Vaughan Ling
7a9660e8d2
Change android orientations from sensor to user
# Conflicts:
#	platform/android/java/lib/src/org/godotengine/godot/GodotIO.java

(cherry picked from commit d658063833)
2020-11-17 12:01:59 +01:00
Fredia Huya-Kouadio
566835e181
Update the logic to query for the 'scons' command executable path.
(cherry picked from commit 46cc3233d8)
2020-11-17 12:01:59 +01:00
Marcus Brummer
75f33fddab
Added the .jks file extension as valid preset for Android keystore files
(cherry picked from commit e1b9be4a6b)
2020-11-17 12:01:59 +01:00
Rémi Verschelde
c36a755472
Merge pull request #43022 from Klowner/3.2-android-display-orientation
Implement OS.get_screen_orientation() for Android
2020-11-15 09:39:29 +01:00
Rémi Verschelde
b6d76c9d34
Merge pull request #43525 from m4gr3d/address_new_custom_build_logic_issues_3_2
[3.2] Address new custom build logic issues
2020-11-14 22:59:26 +01:00
Fredia Huya-Kouadio
380022637e Add missing zip alignment step for generated apks. 2020-11-14 13:16:56 -08:00
Fredia Huya-Kouadio
e87ee41fd4 Fix issue causing Export all to fail. 2020-11-14 13:16:56 -08:00
Fredia Huya-Kouadio
adf2b36179 Clear unneeded assets when generating an apk expansion.
Clean up export wording to account for the different export formats.
2020-11-14 13:16:08 -08:00
Fredia Huya-Kouadio
c9b5e912dd Remove duplicate Android orientation settings. 2020-11-13 12:18:37 -08:00
Mark Riedesel
92ff6c5164 Implement OS.get_screen_orientation() for Android 2020-11-13 10:14:06 -05:00
thebestnom
8405f1225e [3.2] Android: Keyboard modifier and arrow key support 2020-11-13 15:10:17 +02:00
Rémi Verschelde
adf2dabbde
Merge pull request #43456 from akien-mga/3.2-cherrypicks
Cherry-picks for the 3.2 branch (future 3.2.4) - 7th batch
2020-11-11 22:33:31 +01:00
Rémi Verschelde
941e2f2ff3
Merge pull request #43454 from Faless/js/3.x_audio_worklet
[3.2][HTML5] Port inline JS code to libraries, AudioWorklet support.
2020-11-11 15:31:10 +01:00
unknown
31cdf8d9b4
Use LONG instead of DWORD (unsigned int) when interacting with DIJOFS constants.
(cherry picked from commit 4a6e53b3c9)
2020-11-11 15:30:57 +01:00
Fredia Huya-Kouadio
835d4535b7
Add a separate nativeSrcsConfigs module to handle Android Studio constraints for native code editor support.
(cherry picked from commit edf762fba6)
2020-11-11 15:30:56 +01:00
Fredia Huya-Kouadio
3b547457d7
Update the gradle plugins
(cherry picked from commit aff7cf4390)
2020-11-11 15:30:55 +01:00
Ev1lbl0w
f279f657a5
Changed path behaviour for Windows
(cherry picked from commit 525a5be01d)
2020-11-11 15:30:55 +01:00
Hugo Locurcio
4907911bf8
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.

(cherry picked from commit ff1f0d2cb5)
2020-11-11 15:12:01 +01:00
Fabio Alessandrelli
6d939b72f0 [HTML5] AudioWorkletAPI 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 download) in the thread build.
2020-11-10 11:05:15 +01:00
Fabio Alessandrelli
e52ed6d89e [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 10:56:13 +01:00
Pedro J. Estébanez
3ec62c82a3 Implement no-window mode for X11 and MacOS
Bonus: Homogeinize and improve OS::alert() for no-window mode
2020-11-09 20:56:12 +01:00
Fabio Alessandrelli
a7ecb3c048 [HTML5] Update syntax for lto. 2020-11-06 18:23:08 +01:00
Fabio Alessandrelli
f39b46f7c1 [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:08 +01:00
thebestnom
191c84f952 Android: Mouse Implementation
Implement mouse
Move touch to inputManager
Change to use android/input.h
2020-10-30 15:23:29 +02:00
PouleyKetchoupp
4ccde80d9d
Release .build_version file handle in Android custom build export
(cherry picked from commit b271315bac)
2020-10-28 15:09:13 +01:00
Ev1lbl0w
f41cc7d644
Changed shell_open behaviour
(cherry picked from commit 9e57a395cf)
2020-10-28 14:05:41 +01:00
Mark Riedesel
5740bd808a
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].

(cherry picked from commit 5fe902244a)
2020-10-28 14:05:40 +01:00
Mark Riedesel
2bec10fd1c Implement OS.get_window_safe_area() for Android 2020-10-27 11:52:20 -04:00
bruvzg
df6ea27ab3
[3.2] Disable iOS SDK version check on osxcross.
Currently, osxcross `xcrun` supports only macOS SDKs.
2020-10-21 07:56:05 +03:00
Rémi Verschelde
3b4005026d
Merge pull request #42593 from bruvzg/ios_sdk_ver_check
[3.2] Add iOS SDK version check.
2020-10-20 15:12:59 +02:00
Rémi Verschelde
0181819339
Merge pull request #42773 from bruvzg/macos_inertia_32
[macOS, 3.2] Suppress momentum scrolling after key press.
2020-10-20 15:11:02 +02:00
Rémi Verschelde
e78fbd94e5
Merge pull request #42852 from naithar/fix/in-app-store
[3.2] [iOS] InAppStore fixes
2020-10-20 15:09:41 +02:00
Rémi Verschelde
04fb41a0f3
Merge pull request #42531 from BastiaanOlij/add_get_native_handle
Add get native handle
2020-10-20 13:27:07 +02:00
Bastiaan Olij
1ea7358405 Add get_native_handle to OS 2020-10-20 20:23:37 +11:00
unknown
ae75e7d8f9
Fixed an issue in UWP export caused by duplicate entry for extensions in content types file.
(cherry picked from commit 9cb46ed4e7)
2020-10-19 16:09:59 +02:00
Rémi Verschelde
f33ca5444a
SCons: Refactor and cleanup warnings definition
(cherry picked from commits 97f116d36b
and 56f3aba7b2)
2020-10-19 16:09:59 +02:00
Sergey Minakov
b07877cd27 iOS: fix in app store
Enforce strong reference for SKRequests and delegate objects for transactions to work correctly
2020-10-16 15:51:12 +03:00
lawnjelly
c2290dbedd Unified GLES2 / GLES3 Batching
Batching is mostly separated into a common template which can be used with multiple backends (GLES2 and GLES3 here). Only necessary specifics are in the backend files.

Batching is extended to cover more primitives.
2020-10-16 10:34:47 +01:00
Fabio Alessandrelli
a3179aa8fc Disable WebGL2, window maximize in editor builds. 2020-10-14 12:32:35 +02:00
Fabio Alessandrelli
0452c2fced Improve Project Manager video driver selection.
Now suggests the current video driver instead of defaulting to GLES3.
2020-10-14 12:32:35 +02:00
Fabio Alessandrelli
55f04952c5 [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 11:20:20 +02:00
Fabio Alessandrelli
294e9752bd Add JavaScript editor html file. 2020-10-14 11:20:20 +02:00
Fabio Alessandrelli
1bfc582633 [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:18:41 +02:00
Fabio Alessandrelli
47e82bcb58 [HTML5] Expose request_quit via Engine class.
So it can be called when closure compiler is enabled.
2020-10-14 11:17:08 +02:00
Fabio Alessandrelli
f72bbc4c3b 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:17:03 +02:00
bruvzg
6ea9ee563a
[macOS, 3.2] Suppress momentum scrolling after key press or modifier change to prevent unexpected change of action. 2020-10-13 19:05:05 +03:00
PouleyKetchoupp
de4a1d09b0 Fix issues with Linux clipboard
Backport for X11 Display Server fixes on 3.2 branch.

1. Implement SAVE_TARGETS mechanism

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

2. Implement INCR mechanism

Allows pasting from x11 clipboard to receive data incrementally, which
is required when handling data size > 256KB.
2020-10-10 10:56:52 +02:00
Rémi Verschelde
4040cd350d
Merge pull request #42582 from naithar/feature/3.2-arc-refactor
[3.2] [iOS] Port 4.0 changes
2020-10-07 21:17:01 +02:00
bruvzg
d44bc8d5bc
[3.2] Add iOS SDK version check. 2020-10-06 11:33:52 +03:00
Sergey Minakov
5d1284204d iOS: port ARC support 2020-10-06 00:23:25 +03:00
Sergey Minakov
2bdfec2418 iOS: Refactor platform code
Change project structure to be more like 4.0
Refactor and remove old code as followup after deprecations fix
2020-10-06 00:23:09 +03:00
Fabio Alessandrelli
2d5f9c53b0
[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.

(cherry picked from commit 7998745237)
2020-10-04 20:54:56 +02:00
Fabio Alessandrelli
61d4b8045c [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 16:25:19 +02:00
Fabio Alessandrelli
a57bd798cd Add extra suffix for HTML5 thread builds. 2020-10-02 16:25:18 +02:00
Fabio Alessandrelli
0ca7bc374e 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 16:25:18 +02:00
Rémi Verschelde
7ef6aa7342
Merge pull request #42266 from Faless/js/3.0_sync_fs_size_handlers
[3.2] [HTML5] Synchronous main, better persistence, handlers fixes, optional full screen.
2020-10-02 16:23:35 +02:00
Rémi Verschelde
014147e511
Merge pull request #40557 from PoqXert/game-center
iOS Game Center improvements
2020-10-02 10:58:14 +02:00
Rémi Verschelde
e35687a116
Merge pull request #42478 from bruvzg/macos_dpi_32
[3.2] Fix `get_screen_dpi` on macOS.
2020-10-01 23:03:28 +02:00
bruvzg
610728c9f1
[3.2] Fix get_screen_dpi on macOS for non fractional display scales and update documentation. 2020-10-01 22:55:54 +03:00
Rémi Verschelde
dbb1df2acc
Merge pull request #42459 from naithar/ios-warnings-3.2
[3.2] [iOS] Fix compilation warnings and deprecated API
2020-10-01 19:12:23 +02:00
Rémi Verschelde
1815a90796
Merge pull request #42466 from nekomatata/x11-events-mutex-leak
[3.2] Fix leak with events mutex in OS_X11
2020-10-01 19:10:30 +02:00
Poq Xert
ea5833fc4c iOS GameCenter: Add authenticate method
And no longer connect automatically.
2020-10-02 01:20:11 +10:00
Sergey Minakov
3386fac02c iOS: fix deprecations
Change deprecated method calls to new ones.
Guard iOS version dependant functionality behind availability checks.
2020-10-01 18:09:55 +03:00
PouleyKetchoupp
936c701838 Fix leak with events mutex in x11 Display Server 2020-10-01 16:16:23 +02:00
Rémi Verschelde
4ad74609ce
Merge pull request #40205 from bruvzg/click-through-3
[3.2] Add mouse event pass-through support for window.
2020-10-01 13:58:24 +02:00
Rémi Verschelde
0c3e0ab194
Merge pull request #40994 from qarmin/sanitization32
[3.2] Added Linux sanitizer with xvfb to github workspace
2020-10-01 13:56:09 +02:00
Rémi Verschelde
58f5b25340
Merge pull request #41173 from naithar/fix/iphone-os-values-3.2
[iOS] [3.2] Simplify OS values retrieval
2020-10-01 13:09:36 +02:00
Sergey Minakov
42de81e235 iOS: move touch delay to settings 2020-10-01 12:36:57 +03:00
Rémi Verschelde
904773149d
Merge pull request #42341 from nekomatata/x11-events-thread-3.2
[3.2] Fix issues related to delay when processing events on Linux
2020-09-30 16:39:55 +02:00
Haoyu Qiu
7840a550b5
Hides special folders in FileDialog for macOS
(cherry picked from commit 1998f78679)
2020-09-29 13:57:58 +02:00
Bartłomiej T. Listwon
858bdbacfd
Add all headers to VS Project
(cherry picked from commit 317c2b194d)
2020-09-29 13:57:56 +02:00
Fredia Huya-Kouadio
91a1e4c9ee Fix splash screen loading on Android 2020-09-28 11:24:02 -07:00
Rémi Verschelde
8ca9680b13
Merge pull request #38076 from DrMoriarty/fix_pvrtc
iOS: Fix multiple issues with PVRTC import, disable ETC1
2020-09-28 10:17:22 +02:00
Rémi Verschelde
ec01d6f25e
Merge pull request #42328 from bruvzg/3_mac_captured_fix
[macOS, 3.2] Fix mouse position in captured mode.
2020-09-28 10:08:16 +02:00
Rémi Verschelde
fc50d5b38c
Merge pull request #42186 from m4gr3d/3.2-android-subview
[3.2] Godot Android Subview Implementation
2020-09-27 20:05:33 +02:00
PouleyKetchoupp
f725d9cb73 Fix issues related to delay when processing events on Linux
3.2 backport of PR #41910:
Fix general keyboard input lag on X11 display server
Fix delay to process clipboard content from Godot in other programs
2020-09-26 15:32:40 +02:00
bruvzg
df5499fedf
[macOS, 3.2] Fix mouse position in captured mode. 2020-09-25 08:54:30 +03:00
Vasiliy Makarov
f388ea00bf 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 both GLES2/GLES3
Etc1 for iOS doesn't have any sense, so it disabled.
Fixed checks in export editor.
Fixed pvrtc ability detection in GLES2 driver.
Fixed pvrtc encoding procedure.
2020-09-23 11:13:50 +02:00
Fabio Alessandrelli
35fcc1835c 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-19 18:27:21 +02:00
Fabio Alessandrelli
e7d00d08f5 Make canvas resize optional in HTML5. 2020-09-19 18:27:21 +02:00
Fabio Alessandrelli
40f73f74ce Better HiDPI support in HTML5. 2020-09-19 18:27:21 +02:00
Fabio Alessandrelli
afb81abae5 Window event listener do not use capture. 2020-09-19 18:27:21 +02:00
Fabio Alessandrelli
c0e0247f39 Small refactor to JavaScript handlers.
Crated helper class in native/utils.js.
Simplify code in OS/DisplayServer.
2020-09-19 18:27:21 +02:00
Fredia Huya-Kouadio
8d9733f90c Add overridable init method for the Godot fragment instance. 2020-09-18 16:45:46 -07:00
Fredia Huya-Kouadio
e99dc65b64 Enable the ability to use Godot as a subview within an Android app
(cherry picked from commit 920639511d)
2020-09-18 16:45:40 -07:00
Aman Jain
59da1db188 Add 'Export App Bundle' to Android Export Options 2020-09-18 16:38:30 -07:00
Aman Jain
654342d3bf refactor apk signing into it's own method 2020-09-18 16:17:31 -07:00
Aman Jain
452af201b0 Write an AndroidManifest.xml file to be merged with app module's manifest. 2020-09-18 16:17:31 -07:00
Aman Jain
a323a1eacd Added methods to copy project icon files to Gradle project 2020-09-18 16:17:31 -07:00
Aman Jain
ee9127bd20 Create strings.xml files to mimic behavior of _fix_resources method 2020-09-18 16:17:27 -07:00
Aman Jain
824f0b0569 Refactored permissions and command line flags into separate methods 2020-09-18 16:12:15 -07:00
Aman Jain
29a71edd76 Utility methods for writing files to Gradle project. 2020-09-18 16:12:15 -07:00
Fabio Alessandrelli
c610ad3739 Move request_quit to javascript_main. 2020-09-18 18:54:11 +02:00