summaryrefslogtreecommitdiff
path: root/platform
AgeCommit message (Collapse)Author
2020-11-30[HTML5] Fix broken layout on load in HiDPI screensFabio Alessandrelli
This was caused by the devicePixelRatio being applied twice, once by the HTML code, once by the OS code. More specifically, OS.get_window_size() would return the canvas element size, while OS.set_window_size() would set the element size to the specified value times the devicePixelRatio. Calling OS.set_window_size(OS.get_window_size()) would reapply the devicePixelRatio every time. This commit changes the behaviour so that OS.set_window_size() do not apply the devicePixelRatio to the canvas element size, by it divides the CSS size instead.
2020-11-30[HTML5] Remove file flags from writeFile in setup.Fabio Alessandrelli
Flags where deprecated and partly in removed in emscripten 2.0.9.
2020-11-28Merge pull request #41100 from bruvzg/ctl_text_server_interfaceRémi Verschelde
[Complex Text Layouts] Implement TextServer interface.
2020-11-27Implement INCR mechanism for Linux clipboardPouleyKetchoupp
Allows pasting from x11 clipboard to receive data incrementally, which is required when handling data size > 256KB.
2020-11-26[Complex Text Layouts] Refactor Font class, default themes and controls to ↵bruvzg
use Text Server interface. Implement interface mirroring. Add TextLine and TextParagraph classes. Handle UTF-16 input on macOS and Windows.
2020-11-26[Complex Text Layouts] Add third-party TextServer dependencies (ICU, ↵bruvzg
HarfBuzz, Graphite).
2020-11-26Merge pull request #42652 from nekomatata/x11-clipboard-save-targetsRémi Verschelde
Implement SAVE_TARGETS mechanism for Linux clipboard
2020-11-25SCons: Do not define TYPED_METHOD_BIND on Linux/clangRémi Verschelde
It's now only needed for MSVC.
2020-11-24Merge pull request #42648 from naithar/fix/native_video_viewRémi Verschelde
[iOS] Native video fixes
2020-11-24Merge pull request #43803 from m4gr3d/update_signing_and_zipalign_logic_masterRémi Verschelde
Update gradle build files to automatically perform signing and zipalign tasks for custom builds
2020-11-23[HTML5] Run eslint --fix.Fabio Alessandrelli
Should I write a poem about this whole new world? ;)
2020-11-23[HTML5] Enforce JavaScript style with eslint.Fabio Alessandrelli
Applies to javascript files inside the platform library folder, the exposed Engine code, and any javascript files in modules. Files ending with ".externs.js" will be ignored, you can create a ".eslintignore" file to specify extra files to be ignored.
2020-11-22Update gradle build files to automatically perform signing and zipalign ↵Fredia Huya-Kouadio
tasks for custom builds.
2020-11-21[HTML5] Libraries refactor for linting.Fabio Alessandrelli
Initial work to make liniting easier. This includes: - Rename http_request.js to library_godot_http_request.js. - Rename externs.js to engine.externs.js. - New library_godot_runtime.js (GodotRuntime) wraps around emscripten functions. - Refactor of XMLHttpRequest handler in engine/preloader.js. - Few fixes to bugs spotted by early stage linting.
2020-11-20Export: Reorder options for consistency across platformsRémi Verschelde
2020-11-19Merge pull request #43692 from akien-mga/scons-leave-link-aloneRémi Verschelde
SCons: Remove unnecessary $LINK overrides
2020-11-19SCons: Remove unnecessary $LINK overridesRémi Verschelde
As of SCons 4.0.1, the default value for $LINK is $SMARTLINK, which itself is a function that will use $CXX as linker for C++: https://github.com/SCons/scons/blob/4.0.1/SCons/Tool/link.py#L327-L328 https://github.com/SCons/scons/blob/4.0.1/SCons/Tool/link.py#L54-L76 So we don't need to manually specify the same value as $CXX for $LINK.
2020-11-19OSX: Fix linking with osxcross for arm64Rémi Verschelde
For some reason the `-target` option on the `LINKFLAGS` was causing a weird issue where osxcross' clang wrapper would attempt using the system `/bin/ld` instead of the osxcross version (which is Apple's `ld64`). The error message would be: ``` /bin/ld: unrecognized option '-dynamic' ``` Also removed from `CCFLAGS` for consistency, it seems to work fine with only `-mmacosx-version-min`.
2020-11-18Fix zipalign command name on Windows machines.Fredia Huya-Kouadio
2020-11-17Add missing javascript semi-colons.Marcel Admiraal
2020-11-16Remove empty lines around braces with the formatting scriptAaron Franke
2020-11-16Merge pull request #43595 from mbrlabs/windows-execute-fixRémi Verschelde
Fixed exit code retrieval of spawned processes on Windows
2020-11-16Merge pull request #43248 from HEAVYPOLY/masterRémi Verschelde
Change android orientations from sensor to user
2020-11-16Fixed exit code retrieval of spawned processes on WindowsMarcus Brummer
Use GetExitCodeProcess() on Windows to retrieve the exit code of a process in OS:excute()
2020-11-16Merge pull request #43556 from naithar/feature/pluggable_app_delegatesRémi Verschelde
[4.0] [iOS] Pluggable application delegate
2020-11-16Merge pull request #43461 from ccl2of4/fix-linux-joypad-dpad-zeroingRémi Verschelde
Fix for linux joypad D-pad zeroing
2020-11-16Merge pull request #43545 from bruvzg/xchangeprop_atoms_checkRémi Verschelde
Add XChangeProperty atoms validity checks.
2020-11-15Add XChangeProperty Atoms validity checks.bruvzg
2020-11-15iOS: fix keyboard displaySergey Minakov
2020-11-15iOS: Implement pluggable application delegate.Sergey Minakov
2020-11-14Update the logic to query for the 'scons' command executable path.Fredia Huya-Kouadio
2020-11-14Merge pull request #43526 from m4gr3d/address_new_custom_build_logic_issuesRémi Verschelde
Address new custom build logic issues
2020-11-14Add missing zip alignment step for generated apks.Fredia Huya-Kouadio
2020-11-14Fix issue causing `Export all` to fail.Fredia Huya-Kouadio
2020-11-14Clear unneeded assets when generating an apk expansion.Fredia Huya-Kouadio
Clean up export wording to account for the different export formats.
2020-11-14Fixes crash if Vulkan presentation surface is not available.bruvzg
2020-11-14Added the .jks file extension as valid preset for Android keystore filesMarcus Brummer
2020-11-13Remove duplicate Android `orientation` settings.Fredia Huya-Kouadio
2020-11-12Add X11 Atom validity checks.bruvzg
2020-11-11Fix for linux joypad D-pad zeroingConnor Lirot
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-11Merge pull request #43443 from Faless/js/4.0_audio_workletRémi Verschelde
[HTML5] Port inline JS code to libraries, AudioWorklet support.
2020-11-10[HTML5] AudioWorklet API implementation.Fabio Alessandrelli
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-10iOS Export: support multi-target pluginSergey Minakov
Plugins can use 'binary_name.a' or 'binary_name.release.a' and 'binary_name.debug.a' for plugin library.
2020-11-10iOS Export: export modification to support pluginsSergey Minakov
Added plugin configuration. Export options now use plugins that could be enabled/disabled. Plugin changes are observed at runtime.
2020-11-10iOS: change platform code to support pluginsSergey Minakov
2020-11-10iOS Modules: separate main platform code from modulesSergey Minakov
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[HTML5] Port JavaScript inline code to libraries.Fabio Alessandrelli
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[HTML5] Update syntax for lto.Fabio Alessandrelli
2020-11-09Merge pull request #43412 from akien-mga/variant-rename-_RID-to-RIDRémi Verschelde
Variant: Rename Type::_RID to Type::RID
2020-11-09Variant: Rename Type::_RID to Type::RIDRémi Verschelde
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`.