summaryrefslogtreecommitdiff
path: root/platform
AgeCommit message (Collapse)Author
2021-02-19[HTML5] Better fullscreen, canvas resizing.Fabio Alessandrelli
Three canvas resize policies: - `None`: Godot window settings are ignored. - `Project`: Godot handles the canvas like a native app (resizing it when setting the window size). - `Adaptive`: Canvas size will always adapt to browser window size. Use `None` if you want to control the canvas size with custom JavaScript code.
2021-02-19[HTML5] Easier HTML templates, better deinit/cleanup.Fabio Alessandrelli
2021-02-18Reorganize Project Settingsreduz
-Advanced Settings toggle also hides advanced properties when disabled -Simplified Advanced Bar (errors were just plain redundant) -Reorganized rendering quality settings. -Reorganized miscelaneous settings for clean up.
2021-02-18Disable engine splash logic on Android; this is now handled by the Android ↵Fredia Huya-Kouadio
theme api. In addition, add support for scaling and applying filter to the splash screen on Android. One limitation of the api being used is that the splash screen aspect ratio is not maintained when it's scaled up.
2021-02-18Merge pull request #46161 from akien-mga/linux-joypads-udev-fallbackRémi Verschelde
Linux: Fix fallback logic when udev fails creating a context
2021-02-18Linux: Fix fallback logic when udev fails creating a contextRémi Verschelde
Thanks to Noshyaar for pointing out the bug.
2021-02-17Override `ANDROID_NDK_ROOT` based on the project ndk version.Fredia Huya-Kouadio
This helps resolve issues where the project ndk version differs from the one pointed by the `ANDROID_NDK_ROOT` environment variable (if it exists).
2021-02-17Add missing `ndkVersion` to the library gradle build config.Fredia Huya-Kouadio
2021-02-17Revert AGP to version 4.0.1 as a workaround to ↵Fredia Huya-Kouadio
https://issuetracker.google.com/issues/171235570 in version 4.1.x
2021-02-18Merge pull request #46143 from hpvb/dont-clobber-symbolsRémi Verschelde
Don't clobber original library symbols
2021-02-18Android: Bump NDK version to 21.4.7075529Rémi Verschelde
This is what GitHub Actions now provide and they removed the previous 21.3.6528147. A bit annoying to have our hand forced this way but it's still 21.x so should be good to upgrade.
2021-02-18Don't clobber original library symbolsHein-Pieter van Braam-Stewart
It appears that we can get a fun circle dependency on a shared object on some system configurations causing issues with our 'fake' function pointer names. This can lead to a crash. The new wrapper generator renames all the symbols so this can't happen anymore. See https://github.com/hpvb/dynload-wrapper/commit/704135e This closes #46140
2021-02-17Add verbose logging to help with troubleshooting the Android build/export ↵Fredia Huya-Kouadio
process.
2021-02-17Merge pull request #46117 from akien-mga/dynamic-load-libudevRémi Verschelde
Dynamically load libudev.so.1 on Linux
2021-02-17Dynamically load libudev.so.1 on Linux if `udev=yes`Rémi Verschelde
This makes it possibly to run Linux binaries compiled with udev support on Linux systems which do not provide udev (typically systemd-less distros). If udev is missing, we fall back to parsing `/dev/input` like when compiled without udev support (`udev=no`). Also adding some verbose debug statements to know which method we're using when debugging Linux joypad issues. The libudev so wrappers were generated on Mageia 8 with libudev 246.9 using https://github.com/hpvb/dynload-wrapper: ``` ./generate-wrapper.py --include /usr/include/libudev.h --sys-include '<libudev.h>' \ --soname libudev.so.1 --init-name libudev --omit-prefix gnu_ \ --output-header libudev-so_wrap.h --output-implementation libudev-so_wrap.c ```
2021-02-17[HTML5] Implement get_processor_count.Fabio Alessandrelli
2021-02-17[HTML5] Fix compilation issues in 4.0Fabio Alessandrelli
More memory is needed, and a Workaround to avoid undefined symbol due to dead code elimination.
2021-02-17Merge pull request #46087 from Quadtree/add_cwrap_to_runtime_methodsFabio Alessandrelli
Add cwrap to EXTRA_EXPORTED_RUNTIME_METHODS
2021-02-16Dynamically load libpulse.so.0 and libasound.so.1 on LinuxHein-Pieter van Braam-Stewart
By generating stubs using https://github.com/hpvb/dynload-wrapper we can dynamically load libpulse and libasound on systems where it is available. Both are still a build-time requirement but no longer a run-time dependency. For maintenance purposes the wrappers should not need to be re-generated unless we want to bump pulse or asound to an incompatible version. It is unlikely we will want to do this any time soon. This closes #20978
2021-02-16Add cwrap to EXTRA_EXPORTED_RUNTIME_METHODSQuadtree
2021-02-15Expose GodotPlugin's utility methods used for registration and signal emitting.Fredia Huya-Kouadio
This enables creation and use of a plugin like class by composition rather than inheritance.
2021-02-15[macOS] Ignore mouse move event caused by mouse mode switch.bruvzg
2021-02-12[HTML5] Detect screen scale and DPI.Fabio Alessandrelli
`OS.get_screen_scale` will now return the `window.devicePixelRatio` value, `OS.get_screen_dpi` uses CSS media queries to find approximate DPI value for the current display. `OS.get_screen_size` also return the actual screen size (not the CSS pixel size).
2021-02-11Merge pull request #45888 from Faless/js/4.x_xhr_fixRémi Verschelde
[HTML5] Fix HTTPClient request_raw.
2021-02-11[HTML5] Fix HTTPClient request_raw.Fabio Alessandrelli
Now send data according to the spec, properly handle null data. Simplify JS code since we are at it.
2021-02-11[HTML5] Handle contextmenu, webglcontextlost internally.Fabio Alessandrelli
This way they are automatically cleaned up when the engine exits, landing a hand to browsers garbage collectors.
2021-02-10Make Servers truly Thread Safereduz
-Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread). -RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault. -Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory). -3D physics server changed to be made multithread friendly. -Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads. -Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
2021-02-10Merge pull request #45771 from CherokeeLanguage/masterRémi Verschelde
Fix joystick axis mapping issues with NVIDIA shield. Probably others.
2021-02-09Fix joystick axis mapping issues with NVIDIA shield. Probably others.Michael Conrad
Issues addressed: a) Axis mappings were including virtual mouse axes on NVIDIA Shield TV. The virtual mouse axes have the same axis numbers as the normal analog stick numbers. This was completely breaking joypad support on NVIDIA Shield TV. b) Joypads were being tracked in a List with the index in the list being treated as the Godot device id. If a device were to be removed, any device later in the list would be shifted, potentially causing future events with the shifted joypads to have incorrect IDs according to the Godot engine. c) Unnecessary events were being sent to the Godot engine. A check was added (per Joystick) that will prevent sending events for all axes when only a single axis value changed. A similar check was added for "HATs". See #45712
2021-02-09Use /Zi and /FS for including debugger symbols on Windows with MSVCBastiaan Olij
2021-02-08SCons: Fix debug_symbols tests after switch to BoolVariableRémi Verschelde
Bug introduced in #45679. Fixes part of #45816.
2021-02-07Cancel event dispatch on errorkobewi
2021-02-05Merge pull request #44949 from m4gr3d/specify_project_ndk_versionRémi Verschelde
Improve the logic to compile for Android
2021-02-04Merge pull request #45705 from Faless/js/4.x_editor_preloadRémi Verschelde
[HTML5] Better editor persistent folders, automatically open zip import popup
2021-02-03[HTML5] Make home path persistent in editor.Fabio Alessandrelli
We used to only persist specific sub-folder of /home/web_user/ when running the Web Editor. This resulted in bad UX about default project creation path etc. This PR makes the whole folder persistent, move the zip preloading to a different folder (to avoid persisting it), and automatically prompt the user to import it if present.
2021-02-03Merge pull request #45686 from naithar/feature/extend-plugin-params-4.0Rémi Verschelde
[4.0] [iOS] Additional 'linker_flags' plugin parameter
2021-02-03iOS: Use storyboard as loading screenSergey Minakov
If 'Launch Screen' storyboard is present it will be used as loading screen.
2021-02-03[iOS] Additional 'linker_flags' plugin parameterSergey Minakov
2021-02-03[iOS] Remove remote notifications codeSergey Minakov
Using any remote notification method (even indirectly) causes App Store to trigger APNS warning email.
2021-02-03SCons: Add `production=yes` option to use production defaultsRémi Verschelde
This is meant for users making custom builds to match the options used on optimized, official builds. This enables, on the platforms which support them: - `use_static_cpp=yes` (portable binaries for Linux and Windows) - `use_lto=yes` (link time optimizations - note: requires a lot of RAM!) - `debug_symbols=no` (no debug symbols, smaller binaries) Also abort when using MSVC with `production=yes`, as: - It cannot optimize the GDScript VM like GCC or Clang do, leading to significant performance drops. - Its LTO support is unreliable, at least used to trigger crashes last we tried it extensively. All options can still be overridden if specified, and the `dev=yes` option was changed to also support overrides.
2021-02-02[HTML5] Fix mouse_mode and fullscreen detection.Fabio Alessandrelli
The canvas_id is `#`-prefixed to work with emscripten as a CSS selector. When comparing to an event target ID (e.g. when checking if the canvas is fullscreen, or is locking the mouse) we need to skip the first char (the hash).
2021-02-02Merge pull request #45665 from naithar/fix/ios-plugin-initialization-4.0Rémi Verschelde
[4.0] [iOS] Earlier plugin initialization
2021-02-01Merge pull request #45579 from zaevi/add_scons_extRémi Verschelde
add search extensions for Scons' path
2021-02-01Merge pull request #45630 from akien-mga/linux-enable-udevRémi Verschelde
Linux: Enable udev support by default
2021-02-01Linux: Build with use_static_cpp=yes by default for x86_64Rémi Verschelde
This enables `-static-libgcc -static-libstdc++` which help make custom Linux builds more portable (official builds have been using this option for years). For some obscure reason Ubuntu 18.04 i386 crashes when using the option for i386 builds, so let's play it safe and enable for x86_64 only for now.
2021-02-01Linux: Enable udev support by defaultRémi Verschelde
This has been enabled for years in official binaries, and users making custom builds may end up not enabling it unknowingly, so it's best if we default to the same as what official builds do. The original reason for having it opt-in was likely the addition of a dependency on libudev, but that should be fairly ubiquitous by now.
2021-02-01[iOS] Initialize plugins earlierSergey Minakov
Initialize iOS plugins before 'Main::setup' call to have access to them in script's '_init' function.
2021-01-31Merge pull request #45315 from RandomShaper/modernize_threadRémi Verschelde
Modernize Thread
2021-01-30add search extensions for scons' pathzaevi
2021-01-29Modernize ThreadPedro J. Estébanez
- Based on C++11's `thread` and `thread_local` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed (except for the few cases of non-portable functions) - Simpler for `NO_THREADS` - Thread ids are now the same across platforms (main is 1; others follow)