Commit Graph

4163 Commits

Author SHA1 Message Date
97f116d36b SCons: Refactor and cleanup warnings definition 2020-10-08 10:58:05 +02:00
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
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
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
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
6ee74de9ee iOS: Native video refactoring
Moved native video handling to separate view.
2020-10-02 15:05:01 +03:00
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
80b34ccee1 Add extra suffix for HTML5 thread builds. 2020-10-02 13:35:03 +02:00
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
b0152dcac5 Fix screen_get_dpi on macOS for non fractional display scales and restore documentation. 2020-10-01 22:52:20 +03:00
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
1d9b6b01db iOS: move touch delay to settings 2020-10-01 12:36:11 +03:00
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
aed16c8f84 Merge pull request #42381 from timothyqiu/osx-hidden
Hide special folders in FileDialog for macOS
2020-09-29 11:49:03 +02:00
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
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
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
1998f78679 Hides special folders in FileDialog for macOS 2020-09-28 14:36:21 +08:00
317c2b194d Add all headers to VS Project 2020-09-27 18:03:51 +02:00
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
f4a2eabf42 [macOS] Fix mouse position in captured mode. 2020-09-25 08:55:07 +03:00
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
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
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
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
53f04aa1b9 Make canvas resize optional in HTML5. 2020-09-23 09:51:06 +02:00
806edcae5b Better HiDPI support in HTML5. 2020-09-23 09:51:06 +02:00
7d0896e763 Window event listener do not use capture. 2020-09-23 09:51:06 +02:00
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
7d045b8543 Expose request_quit method to JS in HTML5 export. 2020-09-23 09:51:06 +02:00
79c1cf600b Add overridable init method for the Godot fragment instance. 2020-09-18 16:59:09 -07:00
27ab97501b [HTML5] Add override keyword, cleanup methods. 2020-09-18 18:48:59 +02:00
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
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
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
6a14c72b12 Add window click-through support. 2020-09-17 12:36:18 +03:00
4df86f8b04 Only display the Windows toggle console option if it can actually be used 2020-09-14 21:52:04 +02:00
e3d698dae9 Remove unused Python imports. 2020-09-10 11:38:52 +01:00
64095245ee Explicitly add implicitly added semicolons. 2020-09-09 15:30:57 +01:00
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
80b8eff6aa [Complex Test Layouts] Change String to use UTF-32 encoding on all platforms. 2020-09-03 19:56:24 +03:00
a77106bf7e Merge pull request #41332 from bruvzg/win_subsys_option
Revert #41164, add subsystem build option.
2020-09-03 11:52:29 +02:00
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
2a8531cc56 Merge pull request #41456 from nekomatata/x11-fix-popups
Popup fixes for X11 display server
2020-09-03 00:09:19 +02:00
b8d5ced8cd Fix issue causing the textedit to move upward 2020-08-30 10:42:38 -07:00
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
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
db35a008f6 Revert "Fix virtual keyboard height regression" 2020-08-26 14:38:02 -07:00
ffd0bb1d02 Revert "Disable virtual keyboard focus adjustment on Android" 2020-08-26 13:27:25 -07:00
04b402b6f1 Revert "Move PopupWindow logic to GodotEditText on Android" 2020-08-26 13:24:18 -07:00