Commit graph

3471 commits

Author SHA1 Message Date
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
PouleyKetchoupp
2b49cb0b73 Re-apply "Fixes for windows in X11 tiling WMs"
From PR #38727 which was reverted in #41373 because of regressions in Ubuntu
with Gnome.

Co-authored-by: Lorenzo Cerqua <lorenzocerqua@tutanota.com>
2020-08-22 18:42:42 +02:00
Marcel Admiraal
5f092cf7bb Fix new black style check failures in various files. 2020-08-21 16:51:30 +01:00
Fredia Huya-Kouadio
2717891141 Fix splash screen loading on Android 2020-08-19 16:16:37 -07:00
Juan Linietsky
9c5c1635b2
Revert "Fixes for windows in X11 tiling WMs" 2020-08-19 12:37:59 -03:00
Rémi Verschelde
5f6368278f
Merge pull request #41080 from naithar/feature/ios-framework-import
[iOS] [4.0] Export: Add a method to embed a framework
2020-08-19 14:10:50 +02:00
Sergey Minakov
1661309d59 iOS Export: Add a method to embed a framework
By default 'add_ios_framework' would not embed a framework to save previous behavior.
New 'add_ios_embedded_framework' would embed framework on export.
2020-08-19 14:35:54 +03:00
bruvzg
c76fe59204
Add Windows Subsystem build option. 2020-08-17 19:07:12 +03:00
bruvzg
03ffd6451a
Revert "[Windows] Attach to parent console instead of creating new one."
This reverts commit 4f7a49db53.
2020-08-17 19:05:48 +03:00
bruvzg
ee76775792
[Windows] Fix modifier keys when using tablet input. 2020-08-17 14:43:16 +03:00
Andrii Doroshenko (Xrayez)
6f426c3360 Port ClassDB tests to use doctest
Extracted the most minimal core initialization functionality from
`setup()` and `setup2()` so that `ClassDB` could be tested properly
(input, audio, rendering, physics etc, are excluded).

Display and rendering servers/singletons are not initialized at all.

Due to the fact that most subsystems are disabled, fixed various crashes in the
process (in order):
- `AcceptDialog` OK/cancel swap behavior (used `DisplayServer` while
  `register_scene_types()`);
- `make_default_theme` which depends on `RenderingServer`;
- `XRServer` singleton access while calling `register_modules_types()`;
- hidden bug in a way joypads are cleaned up (MacOS and Linux only).

Removed manual `ClassDB` init/cleanup calls from `test_validate_testing.h`.

ClassDB tests:

Co-authored-by: Ignacio Etcheverry <ignalfonsore@gmail.com>
2020-08-16 16:41:02 +03:00
Rémi Verschelde
d4665e7859
Merge pull request #41285 from bruvzg/macos_on_top_4
[macOS] Fix "on top" incorrectly set on init and resetting on window update.
2020-08-15 17:59:05 +02:00
bruvzg
9d1cf0b6af
Fix "on top" incorrectly set on init (all platforms).
Fix "on top" reseting on window update. (macOS).
2020-08-15 17:53:18 +03:00
Gordon MacPherson
788c521ce8 fixed linker being slow on OSX 2020-08-15 01:55:36 +01:00
Rémi Verschelde
33b2070d2e Remove obsolete GLES2 backend code
This code currently isn't compiled (and cannot compile).

We plan to re-add OpenGL ES-based renderer(s) in Godot 4.0 alongside Vulkan
(probably ES 3.0, possibly also a low-end ES 2.0), but the code will be quite
different so it's not relevant to keep this old Godot 3.2 code.

The `drivers/gles2` code from the `3.2` branch can be used as a reference for
a potential new implementation.
2020-08-13 10:04:53 +02:00
Rémi Verschelde
7e19f217bd
Merge pull request #41000 from amanj120/forward_port_bundle_pr_export
Add 'Export App Bundle' to Android Export Options
2020-08-11 19:03:40 +02:00
Rémi Verschelde
0e751ea7c3
Merge pull request #41164 from bruvzg/win_attach_console
[Windows] Attach to parent console instead of creating new one.
2020-08-11 12:58:12 +02:00
bruvzg
f797e1c078
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. 2020-08-11 13:19:19 +03:00
bruvzg
4f7a49db53
[Windows] Attach to parent console instead of creating new one. 2020-08-11 13:02:50 +03:00
Rémi Verschelde
f2d6a4bf84
Merge pull request #40961 from BrainBlasted/update-platform-metadata
platform: Update metadata for export platforms
2020-08-11 12:02:20 +02:00
Sergey Minakov
f9989a1a58 iOS: simplify OS value retrieval 2020-08-10 15:54:44 +03:00
Aman Jain
2b89944a3d Add 'Export App Bundle' to Android Export Options 2020-08-05 12:55:02 -04:00
Christopher Davis
41d8c0c818 platform: Update metadata for export platforms
Updates the logos of for macOS, Android, and iOS; Also
changes "Mac OSX" to "macOS"

Addresses https://github.com/godotengine/godot-proposals/issues/1161
2020-08-01 23:43:14 -07:00
Rémi Verschelde
ec9302cecc
Merge pull request #40927 from 27thLiz/dinput-id
DirectInput: Use correct joypad id
2020-08-01 10:13:15 +02:00
Andreas Haas
802a0316c5
DirectInput: use correct joypad id
Previously `joypad_count` was used as the index into the d_joypads array when initializing a new gamepad.
This caused the accidental override of an already connected device when a gamepad with a lower id was disconnected and connected again.

fixes #17566
2020-07-31 20:16:51 +02:00
opl-
a31b164071 Fix losing X11 window normal size hint properties
This was caused by `XSetWMNormalHints` being called multiple times, each time with different values. Calling the method replaces the old data completely, resulting in some of the settings being lost.

Since the method was called 3 times before the window was mapped, this resulted in the position hint being lost and the window always getting opened at a position determined by the WM.
2020-07-31 17:32:46 +02:00
Rémi Verschelde
1cee89467b
Merge pull request #40591 from madmiraal/fix-24526
Update Linux gamepad detection to match SDL.
2020-07-31 13:02:35 +02:00
Rémi Verschelde
35ff38b3d4
Merge pull request #40761 from naithar/feature/ios-safe_area
[iOS] Safe area reimplementation
2020-07-30 00:43:03 +02:00
PouleyKetchoupp
cac7eb3a64 Move PopupWindow logic to GodotEditText on Android 2020-07-28 21:19:17 +02:00
Aman Jain
e906ac4d3b refactor apk signing into it's own method 2020-07-27 14:24:57 -04:00
Sergey Minakov
2e705fd620 iOS: safe area implementation 2020-07-27 17:58:57 +03:00
Rémi Verschelde
6e577a5b80
Merge pull request #40755 from Faless/js/fix_and_cancel_swap
Cancel/OK swap on HTML5 platform, small fixes.
2020-07-27 14:32:48 +02:00
Fabio Alessandrelli
0b286a287c Implement HTML5 cancel/ok button swap on Windows.
Platform is detected on init via the `navigator.platform` string.
2020-07-27 14:17:10 +02:00
Fabio Alessandrelli
3e96ba220e Correctly include <stdlib.h> in javascript main.
Already fixed in 3.2, this header is needed since it's where setenv
is declared and we should not assume it to be already included.
2020-07-27 14:17:10 +02:00
Fabio Alessandrelli
757af6a69f Properly set HTML5 DisplayServer init error value.
Checked in main.cpp, would cause the engine to not load.
2020-07-27 14:17:10 +02:00
Rémi Verschelde
bd9fc75768
Merge pull request #40706 from akien-mga/style-fix-file_format-macos
Fix code format scripts compat with non-GNU Unices
2020-07-27 13:27:56 +02:00
Rémi Verschelde
c71e189efd Style: Fix code format scripts compat with non-GNU Unices
It's too hard to get compatibility between GNU and BSD sed,
so let's just use perl oneliners.

And improve it to also remove trailing tabs, not just spaces.
2020-07-27 13:11:44 +02:00
Rémi Verschelde
6de86946ea
Merge pull request #40671 from nekomatata/virtual-keyboard-height-fix
Fix virtual keyboard height regression
2020-07-27 08:57:19 +02:00
Poq Xert
22f1cf5d73 iOS GameCenter: Add authenticate method
And no longer connect automatically.
2020-07-27 12:18:57 +10:00
bruvzg
a05776e20d
[macOS] Refocus last key window after DisplayServer::alert is closed. 2020-07-26 23:00:49 +03:00
Rémi Verschelde
b19b896e06
Merge pull request #40487 from nekomatata/virtual-keyboard-enter-fixes
Fix Return key events in LineEdit & TextEdit on Android
2020-07-26 20:25:53 +02:00
PouleyKetchoupp
8c05dadcff Fix Return key events in LineEdit & TextEdit on Android
Depending on the device implementation, editor actions could be
received with different action ids or not at all for multi-line.

Added a parameter to virtual keyboards to properly handle single-line
and multi-line cases in all situations.

Single-line:
Input type set to text without multiline to make sure actions are sent.
IME options are set to DONE action to force action id consistency.

Multi-line:
Input type set to text and multiline to make sure enter triggers new lines.
Actions are disabled by the multiline flag, so '\n' characters are
handled in text changed callbacks.
2020-07-26 20:06:07 +02:00
Rémi Verschelde
f940e5e000 CI: Install master version of psf/black
Until https://github.com/psf/black/pull/1328 makes it in a stable release,
we have to use the latest from Git.

Apply new style fixes done by latest black.
2020-07-26 19:48:25 +02:00
Rémi Verschelde
3842e8c465
Merge pull request #38727 from Riteo/tiling-wm-issues-tests
Fixes for windows in X11 tiling WMs
2020-07-26 17:41:28 +02:00
Rémi Verschelde
df6f867806
Merge pull request #39624 from naithar/fix/ios-touch-events-master
[4.0] Fix for iOS touch recognition
2020-07-26 15:42:51 +02:00
Sergey Minakov
e6d7e01a72 iOS: added delay gesture recognizer
This gesture recognizer will prevent GodotView from processing unwanted gestures.
Emulates UIScrollView behavior.
Fires delayed touches on significant movement.
2020-07-26 16:05:58 +03:00
bruvzg
4c0081105f
[macOS] Prevent setting BORDERLESS flag and calling window_move_to_foreground from giving focus to window with NO_FOCUS flag. 2020-07-26 15:46:07 +03:00
Sergey Minakov
fe60815d66 iOS SCons: static Vulkan binary usage
Add VMA to iphone platform Use linkflag for iphone building to enforce static linking. Works fine with dynamic '.framework' library
Updated xcode project to use '.a' static library
2020-07-25 21:55:25 +02:00
Sergey Minakov
bfc005d462 iOS: Vulkan support
Implemented Vulkan Support.
Use DisplayServer for rendering and input handling
Use single view for rendering in both GLES2 (not supported yet) and Vulkan
Use @available checks where it's required (otherwise compiler would fail compilation)
Simulator checks
2020-07-25 21:55:20 +02:00
Sergey Minakov
33038be5ed iOS SCons: update iOS minimal version
iOS 11 for iOS device
iOS 13 for iOS Simulator
2020-07-25 21:55:13 +02:00
Rémi Verschelde
963d3a07bd
Merge pull request #40610 from amanj120/forward_port_bundle_pr_manifest
Write AndroidManifest.xml file for Gradle project
2020-07-24 23:35:29 +02:00
PouleyKetchoupp
a2dd966301 Fix virtual keyboard height regression
Disabling virtual keyboard focus adjustement caused get_keyboard_height
to always return 0 because it was calculated when the view is resized.

In order to fix it, a PopupWindow is now created on top of the main view
and is set for focus adjustments so the keyboard size can be calculated
based on this popup without affecting the main view.
2020-07-24 19:54:06 +02:00
Aman Jain
e53067c42e Write an AndroidManifest.xml file to be merged with app module's manifest. 2020-07-24 12:53:27 -04:00
bruvzg
09f301029a
[macOS / ARM64] Remove "-msse2" flag from ARM64 release export template build. Add ARM64 breakpoint inline assembly to "doctest". 2020-07-24 17:54:34 +03:00
RevoluPowered
579342810f t Add unit testing to Godot using DocTest and added to GitHub Actions CI
Implements exit codes into the engine so tests can return their statuses.
Ideally we don't do this, and we use FIXUP logic to 'begin' and 'end' the engine execution for tests specifically.

Since realistically we're initialising the engine here we don't want to do that, since String should not require an engine startup to test a single header.

This lowers the complexity of running the unit tests and even for
physics should be possible to implement such a fix.
2020-07-24 13:05:33 +01:00
Rémi Verschelde
1dc00ce7b9
Merge pull request #40348 from amanj120/forward_port_bundle_pr_icons
Copy project icons to Gradle project directory during Android Custom Build.
2020-07-23 18:03:08 +02:00
Aman Jain
4a5ddcbad2 Copy icons to Gradle project 2020-07-23 11:37:33 -04:00
Rémi Verschelde
dcf902df85 SCons: Remove unused DEBUG_MEMORY_ENABLED define
Its last use was removed in Godot 3.0, so it no longer makes sense to define.

Also removed `D3D_DEBUG_INFO` for Windows as it's likely a left over from a
long time ago pre-opensourcing when Godot had some form of Direct3D 9 support?
2020-07-23 09:39:10 +02:00
Lorenzo Cerqua
d670a49612 DisplayServer: separate window showing into another function
When creating a window, Godot would first register it to the WM(show it) and then set its flags.
This works fine on a floating WM, but on tiling WMs as soon as a window gets registered
the WM immediately acts on the window by scaling it up and treating it as a generic window,
being registered without any special flags.

This commit separates the showing of the window into another function and calls it after the most important flags are set,
making windows with special flags(eg. all popups) work again on tiling WMs.

Fixes #37930
2020-07-23 07:58:10 +02:00
Marcel Admiraal
8fe2ecf565 Update Linux gamepad detection to match SDL. 2020-07-22 10:17:39 +01:00
Rémi Verschelde
a5fb445121
Merge pull request #40450 from asmaloney/spelling
Fix spelling & grammar in comments, docs, and messages
2020-07-21 22:14:04 +02:00
Andy Maloney
4dda62f591 Fix spelling & grammar in comments, docs, and messages 2020-07-21 15:17:23 -04:00
thebestnom
166103c759 Android: Keyboard modifier and arrow key support 2020-07-21 22:13:24 +03:00
Rémi Verschelde
103b46733a
Merge pull request #40533 from zaevi/fix_clipboard_crlf
fix crlf for clipboard
2020-07-21 16:06:43 +02:00
Rémi Verschelde
f6b6d51052
Merge pull request #40562 from nekomatata/osxcross-vulkan-layer
Fix Vulkan layer creation when compiling with OSXCross
2020-07-21 12:57:52 +02:00
PouleyKetchoupp
08b0fd4330 Set minimum osx version to 10.12 for OSXCross compilation
Fixes this compilation error:

In file included from thirdparty/vulkan/vk_mem_alloc.cpp:7:
thirdparty/vulkan/vk_mem_alloc.h:3691:18: error: 'shared_mutex' is unavailable: introduced in macOS 10.12
            std::shared_mutex m_Mutex;
                 ^
/home/[user]/sources/osxcross/target/bin/../SDK/MacOSX10.14.sdk/usr/include/c++/v1/shared_mutex:178:58: note: 'shared_mutex' has been explicitly marked unavailable here
class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_SHARED_MUTEX shared_mutex
2020-07-21 12:37:56 +02:00
PouleyKetchoupp
ce34b77c4a Fix MoltenVK layer creation when compiling with OSXCross 2020-07-21 12:37:20 +02:00
Rémi Verschelde
b7aa474680
Merge pull request #40422 from amanj120/forward_port_bundle_pr_resources
Create strings.xml files in the Gradle project to handle localization
2020-07-20 22:26:44 +02:00
Zae
0107550cf1 fix crlf for clipboard 2020-07-20 23:07:20 +08:00
PouleyKetchoupp
d7aaec8ffe Disable virtual keyboard focus adjustment on Android
Fixes #37190

The default adjustment setting was causing the view to pan down in order
to adjust the focus on the text content.

We don't need any focus adjustment since we're using a fixed size window
for our application.

Documentation:
https://developer.android.com/reference/android/view/WindowManager.LayoutParams#SOFT_INPUT_ADJUST_NOTHING
2020-07-20 12:04:02 +02:00
Aman Jain
5ff6f7a86b Create strings.xml files in the gradle project to handle localization 2020-07-15 13:02:59 -04:00
Rémi Verschelde
c8523038cc
Merge pull request #40268 from DanielZTing/master
Fix cancel/OK button order on macOS
2020-07-15 09:21:04 +02:00
thebestnom
4dc94e93bb Android: fix display server always alerting no Vulkan support 2020-07-14 19:37:36 +03:00
bruvzg
850bbabe56
[macOS] Fix window size on macOS Big Sur (title bar height is no longer same as menu height), use top-left corner as resize origin instead of bottom-left. 2020-07-14 15:09:46 +03:00
Rémi Verschelde
28e8347d6c
Merge pull request #40354 from bruvzg/add_vulkan_init_message
Display error popup instead of crashing if Vulkan init failed.
2020-07-14 09:03:25 +02:00
Aaron Franke
9986439352
Commit other files changed by file_format.sh 2020-07-13 14:14:11 -04:00
bruvzg
996910b627
Add error messages if Vulkan init failed, prevent Vulkan context freeing uninitialized device and instance. 2020-07-13 19:24:21 +03:00
Daniel Ting
9605fc54c7 Fix cancel/OK button order on macOS
The macOS platform convention regarding button order is cancel on left,
OK on right.
2020-07-10 15:10:11 -05:00
Marcel Admiraal
26fcf2b04c Add override keywords. 2020-07-10 13:56:54 +01:00
Rémi Verschelde
dc856481ff
Merge pull request #40244 from amanj120/forward_port_bundle_pr_permissions
Refactor permissions and command line flags into separate methods
2020-07-10 13:19:37 +02:00
Rémi Verschelde
f67b65864f
Merge pull request #40167 from amanj120/forward_port_bundle_pr_saving_files
Utility methods for writing files to gradle project directory
2020-07-10 11:02:03 +02:00
Aman Jain
f579057748 Refactor permissions and command line flags into separate methods 2020-07-09 16:34:08 -04:00
Aman Jain
78e003951a Utility methods for writing files to Gradle project. 2020-07-09 13:57:15 -04:00
bruvzg
bcc3c72d9c
[macOS] Fix transient windows. 2020-07-09 14:22:56 +03:00
Rémi Verschelde
d629b17291
Merge pull request #40215 from naithar/feature/ios-storyboard-usage-master
[4.0] [iOS] Option to use storyboards for launch screens
2020-07-09 08:36:01 +02:00
Sergey Minakov
96e204bb0d iOS Export: Storyboard custom values 2020-07-07 02:00:08 +03:00
Sergey Minakov
d4c541c25a iOS Export: add option to use storyboard for launch screen 2020-07-07 01:46:26 +03:00
Sergey Minakov
7b64f2df50 iOS Export: use relative path for res:// files 2020-07-06 00:56:29 +03:00
Rémi Verschelde
c2a0bfa95b
Merge pull request #40111 from DanielZTing/master
Fix opening URLS with special characters in macOS
2020-07-05 00:51:13 +02:00
Rémi Verschelde
8ccb1cec91
Merge pull request #40084 from bruvzg/macos_seamless_scaling
[macOS] Implement seamless display scaling.
2020-07-04 10:51:09 +02:00
Rémi Verschelde
9828fcc01a
Merge pull request #40105 from Logharaa/master
Stop looping as soon as the first window that has focus is found
2020-07-04 09:57:14 +02:00
bruvzg
df968d577a
[macOS] Implement seamless display scaling. 2020-07-04 10:36:33 +03:00
Daniel Ting
b8e6ff9a7f Fix opening URLS with special characters in macOS
The Online Tutorials section of InputMap in the editor's built-in
documentation viewer contains this link:

docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html#inputmap

The macOS implementation for opening a link percent-encodes it before
sending it to the browser, resulting in a 404. This is to fix #13422
where filenames with special characters could not be opened in Finder.
However, this breaks URLS so I added a check to see if the resource
scheme is file:// and if so, only then is it escaped. This allows other
schemes like `http`, `ftp`, and `mailto` to be used.
2020-07-03 23:00:48 -05:00
Gaël
6c76639c40 Break loop when the first focused window is found 2020-07-04 01:57:16 +02:00
Rémi Verschelde
73fddc623b
Merge pull request #39888 from nekomatata/windows-create-window-error
Fix errors when creating windows on Windows
2020-07-04 01:41:43 +02:00
Rémi Verschelde
c020eea184
Merge pull request #40092 from hinlopen/remove-find-last
Remove String::find_last (same as rfind)
2020-07-04 01:38:01 +02:00
Juan Linietsky
14263d3d0d Improve the situation of DND on X11 2020-07-03 12:09:22 -03:00
Stijn Hinlopen
929b98d24b Remove String::find_last (same as rfind) 2020-07-03 15:26:22 +02:00
Rémi Verschelde
aa564739dd
Merge pull request #40074 from reduz/fix-fullscreen
Fix fullscreen flag on Windows, closes #37588
2020-07-03 09:23:44 +02:00
Rémi Verschelde
64aa25b2e5
Merge pull request #40050 from naithar/feature/ios-gdnative-master-2
[4.0] Add support of iOS's dynamic libraries to GDNative
2020-07-03 07:48:13 +02:00
Juan Linietsky
b14be5f271 Fix fullscreen flag on Windows, closes #37588 2020-07-02 22:09:17 -03:00
bruvzg
a9e341cff3
[macOS] Implement confined mouse mode. 2020-07-02 17:34:58 +03:00
Sergey Minakov
864224a5c1 iOS Export: Updated Info.plist. Framework embedding. Fixes for search paths 2020-07-02 12:56:11 +03:00
Sergey Minakov
eef732342b iOS Export: turn .dylib into .framework on export 2020-07-02 12:56:05 +03:00
Rémi Verschelde
3fb5faaceb
Merge pull request #40018 from Faless/js/more_improvements_4.0
HTML5 fixes, refactor, audio fallback, fixed FPS.
2020-07-02 07:22:43 +02:00
Juan Linietsky
0b7bc83fe3 Add a focus out timeout for X11 to less events of this type are received 2020-07-01 16:14:46 -03:00
Fabio Alessandrelli
7a5e10b8a9 Use dummy driver when JS AudioContext is unavailable. 2020-07-01 17:16:13 +02:00
Fabio Alessandrelli
1a637b07b1 Limit FPS in JS by skipping iterations. 2020-07-01 17:16:13 +02:00
Fabio Alessandrelli
07d4513886 [JS] Check canvas size each loop, force redraw.
Fix compatibility issues, achieve smoother resizing.
2020-07-01 17:16:13 +02:00
Fabio Alessandrelli
a1c4c1d318 More static methods in DisplayServerJavaScript.
Were static functions in cpp file, polluting global namespace.
2020-07-01 17:16:03 +02:00
Rémi Verschelde
5c9ee93f3e
Merge pull request #39788 from bruvzg/macos_apple_silicon
[macOS] Add support for the Apple Silicon (ARM64) build target.
2020-07-01 16:45:23 +02:00
Rémi Verschelde
9000e59650
Merge pull request #40016 from akien-mga/environment-code-cleanup
Environment: Refactor code for readability + more
2020-07-01 16:28:48 +02:00
Rémi Verschelde
372136fe75 Environment: Refactor code for readability + more
- Makes all boolean setters/getters consistent.
- Fixes bug where `glow_hdr_bleed_scale` was not used.
- Split CameraEffects to their own source file.
- Reorder all Environment method and properties declarations,
  definitions and bindings to be consistent with each other
  and with the order of property bindings.
- Bind missing enum values added with SDFGI.
- Remove unused SDFGI enhance_ssr boolean.
- Sync doc changes after SDFGI merge and other misc changes.
2020-07-01 14:44:45 +02:00
Juan Linietsky
239942cfef Ensure embedded mode works again
Also implemented application in/out notifications in X11.
2020-07-01 09:27:43 -03:00
Fabio Alessandrelli
fd92270b0a Refactor canvas ID and locale handling. 2020-07-01 13:10:05 +02:00
Fabio Alessandrelli
5b1cc2d1fc Fix FS error on JS startup due to existing folder. 2020-07-01 13:10:05 +02:00
bruvzg
a07578592b
[macOS] Add application become/resign active notifications. 2020-06-30 17:59:30 +03:00
Juan Linietsky
438c380458 Add a separate application focus/in notification out from Window focus notification. 2020-06-30 10:40:06 -03:00
bruvzg
accae11fe3
[macOS export] Set correct external file attributes (Unix mode), and creation time. 2020-06-30 10:16:02 +03:00
Rémi Verschelde
524f061c01 X11: Ensure XGetWindowProperty data gets freed
And cleanup includes a bit.
2020-06-29 13:32:21 +02:00
bruvzg
00299f15b4
[macOS] Add support for the Apple Silicon (ARM64) build target. 2020-06-29 12:33:51 +03:00
Fredia Huya-Kouadio
2d53b8173e Fix the logic to enable focus awareness 2020-06-27 16:43:08 -07:00
PouleyKetchoupp
1043576ff3 Fix errors when creating windows on Windows
Detecting the case where WM_SIZE is received during the window creation.
There's no need to call window_resize on the Vulkan context.

Also creating a WindowData entry early enough to avoid storing a
separate WindowData wrongly associated to INVALID_WINDOW_ID.

Fixes #39199
2020-06-27 18:26:34 +02:00
Fredia Huya-Kouadio
175d43738a Enable the ability to use Godot as a subview within an Android app 2020-06-25 19:52:40 -07:00
Rémi Verschelde
8f5005b3eb
Merge pull request #39779 from naithar/feature/ios-modules-master
Enable iOS modules and fix missing symbols errors (4.0)
2020-06-24 22:49:39 +02:00
Poq Xert
4c0b077faa Updated purchase receipt suitable for sending to apple verification server
(cherry picked from commit bd71925726)
2020-06-24 17:15:56 +02:00
Sergey Minakov
488879f52b Export: Fix iOS enabling push notifications capability 2020-06-23 12:48:44 +03:00
Sergey Minakov
090b9fec20 SCons: Enable modules for iOS 2020-06-23 12:48:44 +03:00
Fredia Huya-Kouadio
206cbd960b Follow up cleanup for the godotpayment project module 2020-06-22 12:53:25 -07:00
Rémi Verschelde
d808697760
Merge pull request #39751 from bruvzg/mingw_build_fix
Fix MinGW build (use uninitialized `ofs` variable introduced in 39701).
2020-06-22 13:07:14 +02:00
bruvzg
439c97e0ff
Fix use uninitialized ofs variable introduced in 39701. 2020-06-22 13:13:22 +03:00
bruvzg
fc1d1c3557
[Windows] Prevent overwriting old cursor handle on multiple mouse_mode changes, ensure mouse_mode is set before cursor_set_shape is called to restore cursor. 2020-06-22 13:05:18 +03:00
Rémi Verschelde
6869d5d190
Merge pull request #39745 from timoschwarzer/remove-godot-payment-plugin-4
Remove GodotPayment android plugin
2020-06-22 12:01:27 +02:00
bruvzg
7a250b579f
macOS, prevent multiple CGDisplayHideCursor calls unpaired with CGDisplayShowCursor. 2020-06-22 11:38:43 +03:00
Timo Schwarzer
83a966f0d8
Remove GodotPayment android plugin
This is now available in a separate repository
at https://github.com/godotengine/godot-google-play-billing
2020-06-22 09:21:05 +02:00
Rémi Verschelde
efcc508ee5 Move Haiku platform port to external repository
The Haiku port now resides at:
https://github.com/godotengine/godot-haiku-platform

While we're happy to support as many Free and Open Source platforms as we can,
we need to put the main focus on the platforms that we can reasonably maintain,
and for Haiku we have been lacking maintainers ever since the port was first
merged in 2015.

The Haiku code has not been compiling and much less working at least since the
release of Godot 3.0, and while some attempts have been made at fixing things,
it's still not functional today in the `3.2` branch (and much less in `master`,
understandably).

Having it in an external repository should hopefully enable Haiku contributors
to fix issues in their own time, and possibly tag versions compatible with
past Godot releases once they are ready.
2020-06-20 17:59:41 +02:00
Rémi Verschelde
ea30d12204
Merge pull request #39701 from BastiaanOlij/fix_joystick_sliders
Fix missing slider joystick handling on Windows
2020-06-20 11:54:39 +02:00
Rémi Verschelde
79b77f8357
Merge pull request #39700 from nekomatata/osx-export-zip-fix
Set proper file type attribute for OSX zip export
2020-06-20 11:09:56 +02:00
Bastiaan Olij
aa01b327d6 Fix missing slider joystick handling on Windows 2020-06-20 19:03:15 +10:00
PouleyKetchoupp
4501771fd8 Set proper file type attribute for OSX zip export
The missing file type in file attributes was causing the file to lose
executable permissions when unzipped with some softwares.
2020-06-20 10:04:18 +02:00
Rémi Verschelde
35414f1dec
Merge pull request #39053 from timoschwarzer/static-assert-variant-arg-max
Add static_assert checks where code assumes VARIANT_ARG_MAX == 5
2020-06-19 23:51:22 +02:00
Rémi Verschelde
3e07080942
Merge pull request #39427 from hcmlax/shortcut_issue_39351
fixed issue where shortcut doesn't work if alt is pressed before shift
2020-06-19 23:47:49 +02:00
Rémi Verschelde
08ef0aab16 Export: Rename 'Windows Universal' to 'UWP'
It's otherwise too easy to be confused between 'Windows Desktop' (Win32)
and 'Windows Universal' (UWP).
2020-06-19 16:31:28 +02:00
Hugo Locurcio
fdb89a3f9a Rename "Identifier" to "Bundle Identifier" in macOS/iOS export presets
"Bundle Identifier" is more well-understood among macOS and iOS
developers and is less ambiguous.

This is a slight breaking change as export presets will need to be
updated to account for this change.

See https://github.com/godotengine/godot-docs/pull/3295.
2020-06-19 09:59:38 +02:00
unknown
d191a8b9f8 adding check for syskeydown on control and alt 2020-06-18 14:36:22 -07:00
Rémi Verschelde
fa01e666d2
Merge pull request #39542 from Ev1lbl0w/feature/kill-pid
Allow Godot to kill its own PID
2020-06-16 20:49:00 +02:00
Rémi Verschelde
60ba9914f3
Merge pull request #39579 from m4gr3d/provide_activity_to_godot_plugin_constructor_master
Clean up the GodotPlugin public API
2020-06-16 20:45:34 +02:00
Fredia Huya-Kouadio
6daf9b78af Clean up the GodotPlugin public API. 2020-06-16 09:25:09 -07:00
Rémi Verschelde
4b5b60de85
Merge pull request #39189 from touilleMan/issue-38925
Unify OS.get_system_time_* and OS.get_unix_time
2020-06-15 23:57:16 +02:00
Rémi Verschelde
d3c10e8dd6
Merge pull request #39457 from bruvzg/kbd_layouts
Add keyboard layout enumeration / set / get functions.
2020-06-15 11:10:34 +02:00
Rémi Verschelde
2db9c13798
Merge pull request #39436 from bruvzg/macos_export_notarization
[macOS export] Add notarization support.
2020-06-15 11:04:47 +02:00
Rémi Verschelde
6fa2a5ac14
Merge pull request #39537 from Faless/js/fs_sync_iteration
Immediately run first iteration after JS FS sync.
2020-06-14 22:57:32 +02:00
Fabio Alessandrelli
5c75cb0133 Immediately run first iteration after JS FS sync.
Which is now run inside an animation frame.
This avoid a 1 frame black screen when setting up the canvas.
2020-06-14 16:04:45 +02:00
bruvzg
92352b1c23
Add keyboard layout enumeration / set / get functions (macOS, Windows, Linux/X11), remove latin variant function. 2020-06-13 11:02:00 +03:00
Aaron Franke
068054002d
Simplify some code in platform/uwp/export 2020-06-11 17:19:45 -04:00
Rémi Verschelde
c4dd866a15
Merge pull request #38958 from lawnjelly/time_overflow_4
Fix overflow condition with QueryPerformanceCounter
2020-06-11 09:38:44 +02:00
bruvzg
f5c856ea40
macOS export, add notarization support and id / signing / notarization config check. 2020-06-10 15:58:30 +03:00
Rémi Verschelde
f54eda121d
Merge pull request #39304 from m4gr3d/enable_focus_awareness
Add support for focus awareness
2020-06-05 12:42:21 +02:00
Fredia Huya-Kouadio
2bf1f8e4b3 Add support for focus awareness 2020-06-04 15:49:55 -07:00
Fabio Alessandrelli
0a35b97b62 Swtich HTML5 key detection from keyCode to code.
The value of this, does not include the layout.
The code has extra logic to map the unicode value to our keylist,
supporting ASCII and Latin-1.
Also add support for `physical_keycode` in HTML5 platform.
2020-06-04 21:15:05 +02:00
Marcus Brummer
21263a65a9 Check if the specified Android release keystore exists 2020-06-04 13:37:14 +02:00
Rémi Verschelde
c47a6f6325
Merge pull request #39060 from madmiraal/fix-38869
Update Windows GUID to SDL uid conversion.
2020-06-04 11:40:57 +02:00
PouleyKetchoupp
be22a1f9bc Fix inconsistent error messages with Android custom export templates 2020-06-01 23:13:31 +02:00
Emmanuel Leblond
c6de3872f9
Remove OS.get_system_time_secs/get_system_time_msecs and change OS.get_unix_time return type to double 2020-05-31 14:19:31 +02:00
Marcel Admiraal
d04cbbd76b Update OSX GUID to SDL uid conversion.
Co-authored-by: John Wakley <johncwakley@users.noreply.github.com>
2020-05-30 17:38:39 +01:00
Marcel Admiraal
bc49d34123 Add dinput nullptr checks. 2020-05-30 13:59:30 +01:00
Marcel Admiraal
97a529b1d8 Do not probe joypads if DirectInput cannot be initialized. 2020-05-29 12:07:07 +01:00
volzhs
c227733bd8 Add missing consumePurchase plugin method for GodotPayment 2020-05-28 22:48:48 +09:00
Hugo Locurcio
fe09b4d2b3 Tweak the DirectInput initialization failure message
This closes #36662.
2020-05-28 09:45:17 +02:00
Fredia Huya-Kouadio
c948d25b6e Validate that Use Custom Build is enabled when Plugins are selected
Remove `GodotPayment` from the default build template
2020-05-27 12:07:53 -07:00
Rémi Verschelde
7b7b872d94
Merge pull request #39080 from m4gr3d/fix_emit_signal
Use compile-time constant for the size of the signal parameters
2020-05-27 13:05:32 +02:00
Fredia Huya-Kouadio
63286ebba4 Use compile-time constant for the size of the signal parameters 2020-05-27 03:40:26 -07:00
Fredia Huya-Kouadio
75100e5644 Provide the ability for clients of the Godot library to add their own command line arguments 2020-05-27 02:13:52 -07:00
bruvzg
ef1a305e50
Ignore invalid tablet driver name, when non are available. 2020-05-26 21:03:45 +03:00
Rémi Verschelde
24ad4894cc
Merge pull request #39050 from timoschwarzer/google-play-billing-4.0
(4.0) Re-implement GodotPayment Android plugin using the Google Play Billing library
2020-05-26 15:34:06 +02:00
Marcel Admiraal
a833db80d9 Update Windows GUID to SDL uid conversion. 2020-05-26 12:46:42 +01:00
Timo Schwarzer
4b00bf8e83
Re-implement GodotPayment Android plugin using the Google Play Billing library 2020-05-25 22:24:17 +02:00
Rémi Verschelde
242b715144
Merge pull request #38996 from mbrlabs/android-plugin-fix
Perform a clean Gradle build if android plugins changed
2020-05-25 22:18:41 +02:00
Rémi Verschelde
072646f5dd
Merge pull request #39047 from m4gr3d/fix_emit_signal
Fix parameters passing when emitting signal
2020-05-25 22:13:49 +02:00
Timo Schwarzer
05b32fc01d
Add static_assert checks where code assumes VARIANT_ARG_MAX == 5 2020-05-25 21:55:03 +02:00
Fredia Huya-Kouadio
bf76d2afcf Stop ignoring hidden files and directories in the assets directory 2020-05-25 12:03:35 -07:00
Fredia Huya-Kouadio
e7e736c03b Fix parameters passing when emitting signal
The issue was caused because we were using variables local to the `for` loop block.
2020-05-25 11:50:36 -07:00
Marcus Brummer
abd66c1bb0 Perform a clean Gradle build if android plugins changed
Fixes #38986
2020-05-25 19:18:02 +02:00
Fabio Alessandrelli
57bdb4cc35 Fix JS audioContext parameters.
Were not passed along correctly.
`latencyHint` is supposed to be in seconds, not milliseconds.
2020-05-25 15:33:19 +02:00
Rémi Verschelde
3ecdc27f49
Merge pull request #39004 from nekomatata/android-reset-surface
Proper surface reset when resuming app on Android
2020-05-24 22:31:03 +02:00
Rémi Verschelde
926d6c1082
Merge pull request #39007 from nekomatata/android-object-id-long
Use long instead of int for object id in Android java wrapper
2020-05-24 22:30:00 +02:00
PouleyKetchoupp
b987677cc0 Proper surface reset when resuming app on Android
Just re-creating the window instead of restarting the app entirely.
2020-05-24 20:42:21 +02:00
PouleyKetchoupp
39f59786fa Use long instead of int for object id in Android java wrapper
Using int for 64-bit values might cause issues with objects not found
in ObjectDB when the id is truncated.
2020-05-24 13:26:18 +02:00
Rémi Verschelde
3be9c74d8b
Merge pull request #38951 from bruvzg/win_ink_block_mm_4
Block WM_MOUSEMOVE during Windows Ink pen handling.
2020-05-22 14:34:20 +02:00
lawnjelly
db9fa88160 Fix overflow condition with QueryPerformanceCounter
The previous code for OS_Windows::get_ticks_usec() multiplied the tick count by 1000000 before dividing by ticks_per_second. The ticks is counted in a 64 bit integer and is susceptible to overflow when a machine has been running for a long period of time (days) with a high frequency timer.

This PR separates the overall calculation into one for seconds and one for the remainder, removing the possibility of overflow due to the multiplier.
2020-05-22 12:46:35 +01:00
bruvzg
b08b027a9a
Block WM_MOUSEMOVE during Windows Ink pen handling. 2020-05-22 10:44:47 +03:00
GuidoRevers
cf20c0343f Fix segmentation fault when using context_vulkan after memdelete context_vulkan 2020-05-21 20:38:58 +02:00
Rémi Verschelde
1d573969c0
Merge pull request #38874 from bruvzg/tab_drv_sel_40
[Windows] Add tablet driver selection.
2020-05-20 13:58:20 +02:00
Rémi Verschelde
aec07538f4
Merge pull request #38309 from SkyLucilfer/AndroidLineEdit
Fix Android LineEdit editing bugs
2020-05-20 11:45:59 +02:00
bruvzg
d0b5174b6a
[Windows] Add tablet driver selection. 2020-05-20 09:37:32 +03:00
bruvzg
cac399a829
[Windows] Add quotes only to the command line arguments with special characters. 2020-05-19 16:34:15 +03:00
Rémi Verschelde
ca3192d18a Style: Fix unnecessary semicolons that confused clang-format 2020-05-19 11:24:58 +02:00
Rémi Verschelde
74b5d6839a
Merge pull request #33447 from bruvzg/macos_zip_sign
macOS add signing of DMG and ZIPed export
2020-05-19 10:30:26 +02:00
Fredia Huya-Kouadio
6e2988f26a Update the permission string for the Oculus hand tracking to match the latest api update 2020-05-18 15:28:18 -07:00
Rémi Verschelde
9844cd45e3
Merge pull request #38820 from ericrybick/master
Fix certain characters being recognized as special keys on Windows when using the us international layout
2020-05-18 16:33:18 +02:00
Eric Rybicki
e460456e60
Fix certain characters being recognized as special keys in Windows when using the us international layout 2020-05-18 14:47:54 +02:00
Fabio Alessandrelli
90c7102b51 Move mix_rate, ouput_latency to AudioDriverManager
Each driver used to define the (same) project settings values
`audio/mix_rate` and `audio/output_latency`, but the setting names are
not driver specific.
Overriding is still possible via platform tags.
2020-05-18 13:02:06 +02:00
Fabio Alessandrelli
245c179bd3 AudioDriverJavaScript now compute buffer size.
Based on mix rate and expected latency.
2020-05-18 13:02:06 +02:00
Fredia Huya-Kouadio
14e6696c8e Implementation of the Godot Android Plugin configuration file 2020-05-17 11:11:26 -07:00
SkyJJ
cc473b948f Fix Android LineEdit editing bugs 2020-05-16 17:55:27 +02:00
HaSa1002
434bf0572c Fix input event being dispatched multiple times on Windows 2020-05-16 16:17:50 +02:00
bruvzg
08e80ccd99
Fix popup positions on multiple screens (with same scaling only). 2020-05-16 14:11:43 +03:00
Rémi Verschelde
d999071edf
Merge pull request #37924 from thebestnom/migrate-to-androidX
Android: Migrate deprecated support library to AndroidX
2020-05-16 09:03:17 +02:00
bruvzg
4bec713b8c
macOS signing improvements: allow signed app exporting as ZIP, sign DMG after exporting. 2020-05-15 09:38:59 +03:00
Rémi Verschelde
0ee0fa42e6 Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14 21:57:34 +02:00
Rémi Verschelde
07bc4e2f96 Style: Enforce separation line between function definitions
I couldn't find a tool that enforces it, so I went the manual route:
```
find -name "thirdparty" -prune \
  -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \
  -o -name "*.glsl" > files
perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files)
misc/scripts/fix_style.sh -c
```

This adds a newline after all `}` on the first column, unless they
are followed by `#` (typically `#endif`). This leads to having lots
of places with two lines between function/class definitions, but
clang-format then fixes it as we enforce max one line of separation.

This doesn't fix potential occurrences of function definitions which
are indented (e.g. for a helper class defined in a .cpp), but it's
better than nothing. Also can't be made to run easily on CI/hooks so
we'll have to be careful with new code.

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde
0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to
will now be changed automatically to remove the first empty line.

This makes us lean closer to 1TBS (the one true brace style) instead
of hybridating it with some Allman-inspired spacing.

There's still the case of braces around single-statement blocks that
needs to be addressed (but clang-format can't help with that, but
clang-tidy may if we agree about it).

Part of #33027.
2020-05-14 16:54:55 +02:00
Rémi Verschelde
710b34b702 Style: Fix missing/invalid copyright headers 2020-05-14 16:54:54 +02:00
Rémi Verschelde
1f6f364a56 Port member initialization from constructor to declaration (C++11)
Using `clang-tidy`'s `modernize-use-default-member-init` check and
manual review of the changes, and some extra manual changes that
`clang-tidy` failed to do.

Also went manually through all of `core` to find occurrences that
`clang-tidy` couldn't handle, especially all initializations done
in a constructor without using initializer lists.
2020-05-14 10:01:56 +02:00
Ev1lbl0w
75ce45440a
Allow Godot to kill it's own PID 2020-05-13 16:48:14 +01:00
Marcel Admiraal
e7fee711b3 Update game controller enums. 2020-05-13 10:33:32 +01:00
Fabio Alessandrelli
3097c2da96 Add WebSocket debugger, use it for Javascript. 2020-05-12 15:09:13 +02:00
Rémi Verschelde
32133a11b5
Merge pull request #38386 from reduz/new-lightmapper
New GPU lightmapper
2020-05-11 13:45:48 +02:00
Juan Linietsky
1bea8e1eac New lightmapper
-Added LocalVector (needed it)
-Added stb_rect_pack (It's pretty cool, we could probably use it for other stuff too)
-Fixes and changes all around the place
-Added library for 128 bits fixed point (required for Delaunay3D)
2020-05-10 15:59:09 -03:00
Fabio Alessandrelli
6a49b83e39 Add drop files function 2020-05-10 18:22:48 +02:00
Fabio Alessandrelli
d2eef39731 Fix Closure compiler build, python style.
Move copyToFS into utils.js library included with '--pre-js'.
2020-05-10 18:22:48 +02:00
Fabio Alessandrelli
7411e7fd37 DisplayServerJavaScript implementation. 2020-05-10 18:22:48 +02:00
Fabio Alessandrelli
ee99cd42d5 [HTML5] Locale, input fix, context, exit.
Add missing semicolumns in engine.js
Add optional extra args to JS Engine.startGame
Remove loader.js, explicit noExitRuntime.
Also add onExit callback (undocumented in emscripten)
2020-05-10 18:19:23 +02:00
thebestnom
d0ced7a481 Android: Migrate deprecated support library to AndroidX 2020-05-10 19:03:44 +03:00
Rémi Verschelde
69de7ce38c Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
Part of #33027.
2020-05-10 13:13:54 +02:00
Rémi Verschelde
e956e80c1f Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
Part of #33027, also discussed in #29848.

Enforcing the use of brackets even on single line statements would be
preferred, but `clang-format` doesn't have this functionality yet.
2020-05-10 13:12:16 +02:00
Rémi Verschelde
03b13e0c69 Style: Add missing copyright headers 2020-05-10 13:12:16 +02:00
Rémi Verschelde
44db69a7da
Merge pull request #38561 from bruvzg/wintab_extra_mm_events
WinTab: Make movement smoother and handle pressure/tilt changes when cursor is not moving.
2020-05-08 12:19:55 +02:00
bruvzg
78c80de738
WinTab: Adds extra "mouse move" events to make movement smoother and correctly handle pressure/tilt change when cursor is not moving. 2020-05-08 10:56:42 +03:00
Eric M
97e77bcd19 Added mapping for KEY_MENU to VK_APPS (0x5d) so context menu's triggered by the keyboard menu button work 2020-05-08 11:22:21 +10:00
bruvzg
ba85db5a79
Remove WinTab error message. 2020-05-07 15:51:19 +03:00
Rémi Verschelde
6038325470 clang-format: Add JavaImportGroups for Java code 2020-05-06 23:26:43 +02:00
Rémi Verschelde
192529c2d0
Merge pull request #38483 from bruvzg/wintab_api
Add support for the WinTab API for pen input.
2020-05-05 16:27:51 +02:00
bruvzg
d978658f81
[Windows] Add support for the WinTab API for pen input. 2020-05-05 14:16:02 +03:00
Fredia Huya-Kouadio
ef62506e5c Address OS.request_permissions() bug when non-platform permission(s) is included 2020-05-05 10:33:46 +02:00
bruvzg
0128947894
[Linux/Windows] Set pressure to 1.0f when primary button is pressed and device is not pressure sensitive. 2020-05-03 20:13:01 +03:00
Rémi Verschelde
78db7824b7
Merge pull request #37756 from madmiraal/fix-x11-pressure-tilt
Fix X11 pressure and tilt values.
2020-05-03 18:09:33 +02:00
Fabio Alessandrelli
c7e662199f
Merge pull request #37414 from Schroedi/fix_html_mouse_input
Move wheel handlers from window to canvas element in HTML
2020-05-01 12:51:35 +02:00
Rémi Verschelde
7e1e0f496b
Merge pull request #37802 from ThakeeNathees/window-position-bug-osx-x11
display server window position bug fix
2020-04-29 09:04:53 +02:00
Rémi Verschelde
fdf58a5858 Rename InputFilter back to Input
It changed name as part of the DisplayServer and input refactoring
in #37317, with the rationale that input no longer goes through the
main loop, so the previous Input singleton now only does filtering.

But the gains in consistency are quite limited in the renaming, and
it breaks compatibility for all scripts and tutorials that access
the Input singleton via the scripting language. A temporary option
was suggested to keep the scripting singleton named `Input` even if
its type is `InputFilter`, but that adds inconsistency and breaks C#.

Fixes godotengine/godot-proposals#639.
Fixes #37319.
Fixes #37690.
2020-04-28 15:19:49 +02:00
Rémi Verschelde
e71b05d365
Merge pull request #37193 from madmiraal/fix-android-export-unicode-errors
Fix Android export throwing Unicode errors.
2020-04-28 14:27:56 +02:00
Christoph Schröder
b1e8ac7b08 Move mouse wheel handler from window to canvas element in HTML
Similar to https://github.com/godotengine/godot/pull/36557

At least in chrome, the following error is printed for each mouse wheel
rotation:
[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/6662647093133312

This PR moves the handler to the canvas and thereby fixes the error.

Tested on: Chrome and Firefox (MacOS), Firefox, Chrome(Android), Safari (IPad + MacOS)
2020-04-28 08:42:41 +02:00
Rémi Verschelde
f7e2ff5223
Merge pull request #38253 from nekomatata/bullet-update-2.90
Update to bullet master (2.90)
2020-04-27 16:44:17 +02:00
PouleyKetchoupp
3e7db60d56 Update to bullet master (2.90) 2020-04-27 11:37:47 +02:00
Rémi Verschelde
4d3a18d9ff Windows: Appease capricious MSVC versions with moody headers
Fixes #37799.
Fixes #37986.
2020-04-26 22:27:04 +02:00
bruvzg
0c4c530514
[macOS] Re-add define for build with 10.14 SDK, remove unsupported 10.12 checks. 2020-04-26 21:17:10 +03:00
Max Hilbrunner
23b7670d32
Merge pull request #35382 from Calinou/html5-export-title-tag
Set the `title` tag in the HTML5 export immediately
2020-04-26 18:23:35 +02:00
Fredia Huya-Kouadio
328354f878 Fix detection logic for the Android sdk path
The previous logic used the 'tools' directory within the Android sdk to validate it. That directory was recently deprecated and removed from the Android sdk folder (https://developer.android.com/studio/releases/sdk-tools)
2020-04-24 04:21:36 -07:00
Fredia Huya-Kouadio
2f38cfd9ab Fix Android templates size regression
The issue was caused by PR #36906 which changes prevented the generated shared libraries from being stripped.
Since the change is only needed for development (debugging) purposes, it's commented out by default.
2020-04-23 00:21:39 -07:00
Hugo Locurcio
eecce139ea Set the title tag in the HTML5 export immediately
This makes the project title display without having to wait for
the project to finish loading.
2020-04-22 11:31:14 +02:00
Rémi Verschelde
4989beb353
Merge pull request #37895 from qarmin/more_leak_fixes
Fixes leaks in ResourceCache, Vulkan and X11
2020-04-16 11:09:01 +02:00
fhuya
c591cb8fda Migrate legacy apache dependency to the GodotPayment plugin
This is the only location in the codebase where it's being used, so no need to make the main lib have a dependency on it.
2020-04-15 22:36:58 -07:00
qarmin
943ec79859 Fixes leaks in ResourceCache, Vulkan and X11 2020-04-15 10:27:57 +02:00
Rémi Verschelde
ca896ddbf0 Android: Bump build tools to 29.0.3 2020-04-14 13:47:13 +02:00
fhuya
73d4e2eefb Delete unused drawable resources. 2020-04-13 16:15:37 -07:00
SkyJJ
7fcd13575e Validate supported architectures when exporting to Android 2020-04-13 12:16:08 +02:00
Thakee Nathees
63a00aec68 display server window position bug fix (#37323) 2020-04-11 20:13:12 +05:30
fhuya
948c3cbb88 Add signal support to Godot Android plugin:
Supports registering and emitting signal from a Godot Android plugin
2020-04-10 09:22:21 -07:00
Rémi Verschelde
35c8ec065c
Merge pull request #37256 from m4gr3d/add_custom_build_gradle_settings
Update Android custom template build configuration
2020-04-10 13:57:56 +02:00
Marcel Admiraal
a2ad0878ed Fix X11 pressure and tilt values. 2020-04-10 12:10:24 +01:00
Rémi Verschelde
ea2dfb8cc7
Merge pull request #37745 from nekomatata/vulkan-warnings-android
Fix extra warnings in Android build
2020-04-10 11:40:19 +02:00
PouleyKetchoupp
802bbe87ad Fix extra warnings in Android build 2020-04-10 11:06:11 +02:00
Marcel Admiraal
9369b37f1f Fix loss of precision in X11 device info. 2020-04-10 07:40:14 +01:00
PouleyKetchoupp
e167af3737 Display Server support 2020-04-08 01:47:09 +02:00
fhuya
9c11076a20 Update Android custom template build configuration. 2020-04-07 09:07:44 -07:00
PouleyKetchoupp
af424b1c7c Vulkan rendering for Android 2020-04-03 11:18:59 +02:00
Rémi Verschelde
efeb7d07eb
Merge pull request #37533 from akien-mga/gradle-downgrade-3.5.3
Android: Downgrade gradle plugin to 3.5.3
2020-04-02 23:33:35 +02:00
Rémi Verschelde
ba2ec53a26 Android: Downgrade gradle plugin to 3.5.3
With the NDK installed locally, gradle plugin 3.6.0 seems to enforce
a specific older NDK version, and will fail building if you don't have
it installed with:

```
No version of NDK matched the requested version 20.0.5594570.
Versions available locally: 21.0.6113669
```

Upstream issue: https://github.com/gradle/gradle/issues/12440
2020-04-02 23:16:54 +02:00
Rémi Verschelde
312bbb9600
Merge pull request #37525 from lupoDharkael/replace-0L
Replace 0L with a casted nullptr
2020-04-02 21:22:45 +02:00
lupoDharkael
6324f578bd Replace 0L with a casted nullptr 2020-04-02 17:33:46 +02:00
Rémi Verschelde
ea7b497065 Replace more occurrences of NULL with nullptr 2020-04-02 14:56:01 +02:00
lupoDharkael
95a1400a2a Replace NULL with nullptr 2020-04-02 13:38:00 +02:00
Rémi Verschelde
5f11e15571
Merge pull request #37504 from qarmin/out_of_bound_cursor
Fix array out of bounds access caused by uninitialised variables
2020-04-02 13:07:55 +02:00
Rafał Mikrut
359bebd8c0 Fix out of bound array access caused by unassigned variable 2020-04-01 19:29:35 +02:00
Rémi Verschelde
516b3bb88f Fix Clang warnings on Windows
Fixes #37490.
2020-04-01 16:28:20 +02:00
Ignacio Etcheverry
21d1ea60a7 Fix exporting corrupted Xcode pbxproj if project name has spaces 2020-03-31 09:37:17 +02:00
Ignacio Etcheverry
77dd061345 Mono/C#: Add iOS support
Right now, games only work on devices when exported with FullAOT+Interpreter.
There are some issues left that need to addressed for FullAOT alone. Right now,
it's giving issues with the Godot.NativeCalls static constructor.
2020-03-31 09:37:16 +02:00
Rémi Verschelde
cd4e46ee65 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:

- Manually wrapped strings will be reflowed, so by using a line length
  of 120 for the sake of preserving readability for our long command
  calls, it also means that some manually wrapped strings are back on
  the same line and should be manually merged again.

- Code generators using string concatenation extensively look awful,
  since black puts each operand on a single line. We need to refactor
  these generators to use more pythonic string formatting, for which
  many options are available (`%`, `format` or f-strings).

- CI checks and a pre-commit hook will be added to ensure that future
  buildsystem changes are well-formatted.
2020-03-30 09:05:53 +02:00
Rémi Verschelde
60d486acc8 Fix copyright headers for recently added files 2020-03-28 13:29:29 +01:00
dankan1890
06e8740184 Fixed missed occurrences in #37361 renamings. 2020-03-28 12:37:44 +01:00
Juan Linietsky
a6f3bc7c69 Renaming of servers for coherency.
VisualServer -> RenderingServer
PhysicsServer -> PhysicsServer3D
Physics2DServer -> PhysicsServer2D
NavigationServer -> NavigationServer3D
Navigation2DServer -> NavigationServer2D

Also renamed corresponding files.
2020-03-27 15:21:27 -03:00
bruvzg
e1c1bb03ea
Prevent recursive _dispatch_input_event calls, improve focus regain on window deletion. 2020-03-26 23:22:04 +02:00
bruvzg
15a9f94346 Add macOS DisplayServer implementation.
Change global menu to use Callable, add support for check items and submenus.
2020-03-26 16:24:05 +01:00
Juan Linietsky
197cb4e771 Fixes to X11, still pretty broken 2020-03-26 15:50:00 +01:00
Mateo Kuruk Miccino
f387b9b4f4 Multiple changes to DisplayServerX11
- Travis: Change x11 to linuxbsd
- SCons: Change x11 plataform to linuxbsd
- Plugins: Remove ; to avoid fallthrough warning
- DisplayServerX11: Implement set_icon
- DisplayServerX11: Fix X11 bug when a window was erased from windows
  map, all the changes from that erased windows are sending to the main
  window
- DisplayServerX11: Reorder create_window commands
- DisplayServerX11: Change every Size2 to Size2i and Rect2 to Rect2i
  where it belongs

+ More X11 fixes which have been integrated directly back into reduz's
original commits while rebasing the branch.
2020-03-26 15:49:54 +01:00
Juan Linietsky
9a5d15a2dc Implemented drag and drop across windows, both OS and embedded. 2020-03-26 15:49:46 +01:00
Juan Linietsky
047e0b7de5 Reworked tooltips to use the popup system. 2020-03-26 15:49:45 +01:00
Juan Linietsky
b3080bc2f4 Popups have also been converted to windows
Controls using the old modal API have been replaced to use popups.
2020-03-26 15:49:44 +01:00
Juan Linietsky
09ba290364 Fixes to window style flags 2020-03-26 15:49:44 +01:00
Juan Linietsky
c7b4dcae2f Open sub-windows as embedded if the OS does not support them 2020-03-26 15:49:43 +01:00
Juan Linietsky
441f1a5fe9 Popups are now windows also (broken!) 2020-03-26 15:49:42 +01:00
Juan Linietsky
543fb1c4da Separate DisplayServer from OS on Windows 2020-03-26 15:49:41 +01:00
Juan Linietsky
499e07f010 Make DisplayServerX11 thread safe 2020-03-26 15:49:40 +01:00
Juan Linietsky
4758057f20 Working multiple window support, including editor 2020-03-26 15:49:40 +01:00
Juan Linietsky
f51fdc6eef Support for transient windows 2020-03-26 15:49:39 +01:00
Juan Linietsky
8e6960a69e Refactored input, goes all via windows now.
Also renamed Input to InputFilter because all it does is filter events.
2020-03-26 15:49:39 +01:00
Juan Linietsky
9e08742de8 Added a Window node, and made it the scene root.
Still a lot of work to do.
2020-03-26 15:49:38 +01:00
Juan Linietsky
f8a79a97c7 Effective DisplayServer separation, rename X11 -> LinuxBSD 2020-03-26 15:49:34 +01:00
Juan Linietsky
4396e98834 Refactored Input, create DisplayServer and DisplayServerX11 2020-03-26 15:49:32 +01:00
Rémi Verschelde
3d2dd79ecd SCons: Drop support for Python 2
We now require SCons 3.0+ (first version with Python 3 support),
and we set min required Python 3 version to 3.5 (3.4 and earlier are
EOL).
2020-03-25 15:25:37 +01:00
Rémi Verschelde
6bc1ae8a2c
Merge pull request #37271 from akien-mga/cleanup-unused-classes
Remove unused classes and stray headers
2020-03-24 15:49:21 +01:00
Rémi Verschelde
ebf21e2288
Merge pull request #37261 from m6c7l/feature/issue-37239
Linux: add relaxation to conditions in the joystick check routine
2020-03-24 11:17:54 +01:00
Rémi Verschelde
9d24541597 Remove unused classes and stray headers
Found by reviewing headers with 1 or less matching includes:
```
find -name thirdparty -prune -o -name "*.h" -exec basename {} \; | sort -u > headers
for header in $(cat headers); do echo "$header: "; rg -l "#include \"(.*/)?$header\"" | wc -l; done > list-includes
```
2020-03-24 09:50:51 +01:00
m6c7l
36293f4256 issue-37239 add relaxation to conditions in the joystick check routine for being identified as joystick 2020-03-24 08:42:21 +01:00
Ev1lbl0w
bc53288d1e
Fixed WM_DELETE flag being set too late 2020-03-23 12:42:19 +00:00
Rémi Verschelde
cbbe0743a9
Merge pull request #37219 from RajatGoswami/missing-include-guards
Adding missing include guards to header files identified by LGTM
2020-03-23 11:17:24 +01:00
Rajat Goswami
2ecf928ae3 Adding missing include guards to header files identified by LGTM.
This addresses the issue godotengine/godot#37143
2020-03-23 04:52:36 -04:00
Aaron Franke
7dbe8b65ae
Make file formatting comply with POSIX and Unix standards
UTF-8, LF, no BOM, and newlines at the end of files
2020-03-21 17:41:03 -04:00
Marcel Admiraal
e74f8aaaf1 Fix Android export throwing Unicode errors. 2020-03-20 17:23:40 +00:00
fhuya
d7b10beb1b Update the naming scheme for the GodotPlugin's methods in preparate of the vulkan integration. 2020-03-19 15:28:33 -07:00
Rémi Verschelde
0d907a6320
Merge pull request #37115 from RandomShaper/imvu/windows_stack_size
Make stack size on Windows match Linux and MacOS
2020-03-18 16:11:55 +01:00
unknown
90cdacd741 Removed unused code in android detect.py and SCsub 2020-03-18 18:12:50 +05:30
fhuya
99173c5fc4 Complete the implementation of the GodotPayment plugin.
Move the remaining plugin components within the plugin source code.
2020-03-17 17:43:09 -07:00
Pedro J. Estébanez
29f8530afe Make stack size on Windows match Linux and MacOS 2020-03-17 18:17:41 +01:00
Rémi Verschelde
6c74f38f0b
Merge pull request #36906 from m4gr3d/enable_android_studio_debugging
Enable Android Studio debugging
2020-03-17 16:31:04 +01:00
Rémi Verschelde
b8577ecce1
Merge pull request #37106 from akien-mga/clang-format-cpp11
Style: Set clang-format Standard to Cpp11
2020-03-17 08:42:39 +01:00
Rémi Verschelde
cb282c6ef0 Style: Set clang-format Standard to Cpp11
For us, it practically only changes the fact that `A<A<int>>` is now
used instead of the C++03 compatible `A<A<int> >`.

Note: clang-format 10+ changed the `Standard` arguments to fully
specified `c++11`, `c++14`, etc. versions, but we can't use `c++17`
now if we want to preserve compatibility with clang-format 8 and 9.
`Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-17 07:36:24 +01:00
PouleyKetchoupp
c169367e83 Fix text_entered signal when max_length is used in LineEdit on Android
Fixes #35954
2020-03-13 17:04:40 +01:00
Rémi Verschelde
36a414eb03
Merge pull request #36994 from akien-mga/typedefs-cleanup
typedefs: Cleanup unused macros and unnecessary checks
2020-03-12 22:02:18 +01:00
Rémi Verschelde
1c2f2a805d typedefs: Cleanup unused macros and unnecessary checks
We now require a compiler with C++17 support, so we don't need to
check for features added to GCC 5 or Clang 3.2.

Clang builtin availability checks were unused anyway as Clang defines
`__GNUC__` as it's also a GNU C implementation.

Fixes #36986.
2020-03-11 21:44:56 +01:00
Fabio Alessandrelli
919bbf8077 [HTML5] Refactor JS, threads support, closures.
- Refactored the Engine code, splitted across files.
- Use MODULARIZE option to build emscripten code into it's own closure.
- Enable lto support (saves ~2MiB in release).
- Enable optional closure compiler pass for JS and generated code.
- Enable optional pthreads support.
- Can now build with tools=yes (not much to see yet).
- Dropped some deprecated code for older toolchains.
2020-03-11 16:09:31 +01:00
Fabio Alessandrelli
bd04ede5ad AudioDriverJavascript uses IDHandler.
This makes closure compiler happy, avoiding globals and potentially
undefined variables.
2020-03-11 11:34:32 +01:00
Rémi Verschelde
db28e7ef69 Linux: Add Mesa 20 "Intel" to prime detection
Diff in `glxinfo` between Mesa 19.3.4 and 20.0.1:
```diff
-OpenGL vendor string: Intel Open Source Technology Center
-OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 630 (Kaby Lake GT2)
-OpenGL core profile version string: 4.6 (Core Profile) Mesa 19.3.4
+OpenGL vendor string: Intel
+OpenGL renderer string: Mesa Intel(R) HD Graphics 630 (KBL GT2)
+OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.0.1
```
2020-03-11 08:35:59 +01:00
Rémi Verschelde
05d9d1c0e7
Merge pull request #36905 from Faless/js/restore_and_ci
Resurrect HTML5 platform, add it to CI (no rendering yet)
2020-03-11 07:31:16 +01:00
Rémi Verschelde
1f6c9328dd Revert "Change LINKFLAGS to FRAMEWORKS which is supported since"
This reverts commit c924e83a64.

SCons `FRAMEWORKS` is, according to their latest docs, only supported
"On Mac OS X with gcc". While the "with gcc" part seems bogus, #36795
did introduce a link failure for our osxcross toolchain for compiling
macOS binaries from Linux. SCons probably fails to detect this as a
macOS target and does not use its `FRAMEWORKS` logic properly.

So using `LINKFLAGS` as we used to is the more portable solution.
2020-03-10 09:55:28 +01:00
Rémi Verschelde
478337c412
Merge pull request #36751 from Faless/debugger/threads_and_profilers
ScriptDebugger refactor, threading, profilers.
2020-03-09 19:08:07 +01:00
fhuya
7aa1c3e490 Fix initialization of the GodotPayment plugin
The `onGLRegisterPluginWithGodotNative()` method is supposed to be invoked only by `Godot`.
2020-03-09 10:32:23 +01:00
fhuya
41dadb2b2b Enable Android studio debugger. 2020-03-08 12:37:46 +01:00
Fabio Alessandrelli
b8ddaf9c33 Refactor ScriptDebugger.
EngineDebugger is the new interface to access the debugger.
It tries to be as agnostic as possible on the data that various
subsystems can expose.

It allows 2 types of interactions:

- Profilers:
  A subsystem can register a profiler, assigning it a unique name.
  That name can be used to activate the profiler or add data to it.
  The registered profiler can be composed of up to 3 functions:
    - Toggle: called when the profiler is activated/deactivated.
    - Add: called whenever data is added to the debugger
      (via `EngineDebugger::profiler_add_frame_data`)
    - Tick: called every frame (during idle), receives frame times.

- Captures: (Only relevant in remote debugger for now)
  A subsystem can register a capture, assigning it a unique name.
  When receiving a message, the remote debugger will check if it starts
  with `[prefix]:` and call the associated capture with name `prefix`.

Port MultiplayerAPI, Servers, Scripts, Visual, Performance to the new
profiler system.

Port SceneDebugger and RemoteDebugger to the new capture system.
The LocalDebugger also uses the new profiler system for scripts
profiling.
2020-03-08 12:36:39 +01:00
Fabio Alessandrelli
aa8c825855 OS_Javascript temporarly uses dummy rasterizer. 2020-03-08 03:35:13 +01:00
Fabio Alessandrelli
fd035c931d Fix Javascript platform after PoolVector removal.
Eval should be rechecked.
2020-03-08 03:35:13 +01:00
fhuya
7dea2ad1de Trim the whitespace around the plugins names. 2020-03-06 17:22:04 -08:00
Rémi Verschelde
9d8a9ea826 assimp: Clean and document buildsystem, prepare for unbundling
- Improve the SCsub to allow unbundling and remove unnecessary code.
- Move files around to match upstream source.
- Re-sync with upstream commit 308db73d0b3c2d1870cd3e465eaa283692a4cf23
  to ensure we don't have local modifications.
- Doesn't actually build against current version 5.0.1 due to the lack
  of the new ArmaturePopulate API that Gordon authored. We'll have to
  wait for a public release with that API (5.1?) to enable unbundling.
2020-03-06 14:37:52 +01:00
bruvzg
6b23e36dbc
Replace IOHIDDeviceRegisterRemovalCallback with IOHIDManagerRegisterDeviceRemovalCallback to fix gamepad disconnection callback on macOS Catalina. 2020-03-06 11:57:58 +02:00
fhuya
f097defba1 Re-architecture of the Godot Android plugin. 2020-03-05 10:00:19 -08:00
fhuya
c090caa58b Provides a base implementation of the Vulkan surface view (VkSurfaceView.kt) and its accompanying components.
The implementation is meant to be extended and updated in order to integrate it with the existing Godot java and native codebase.
2020-03-05 08:01:42 -08:00
Rémi Verschelde
42595085a5
Merge pull request #36752 from RandomShaper/rework_semaphore
Drop old semaphore implementation
2020-03-05 16:33:45 +01:00
Rémi Verschelde
5ea8b1692a
Merge pull request #36795 from hungrymonkey/issue_36720
Change LINKFLAGS to FRAMEWORKS which is supported since Scons release 0.96.91
2020-03-05 15:21:26 +01:00
Rémi Verschelde
fbaa55a8db
Merge pull request #36798 from m4gr3d/android_codebase_misc_cleanup
Miscellaneous cleanup for the Android codebase
2020-03-05 08:55:56 +01:00