summaryrefslogtreecommitdiff
path: root/platform
AgeCommit message (Collapse)Author
2021-02-26Update the logic to load Godot Android plugins packaged into the binary.Fredia Huya-Kouadio
The previous logic had the side effect of imposing a limit of one plugin per `aar` binary. The update lifts that restriction.
2021-02-26Merge pull request #46446 from Faless/js/4.x_jsdocRémi Verschelde
[HTML5] Document Engine and EngineConfig (jsdoc).
2021-02-26[HTML5] Make editor HTML build tag scons4-proof.Fabio Alessandrelli
We used to have it like `$GODOT_VERSION` which caused inconsistencies between different scons versions when substituting it. It's now `@GODOT_VERSION@`, which is safe on both scons3 and scons4.
2021-02-26[HTML5] Add jsdoc2rst tool.Fabio Alessandrelli
A template for `jsdoc` that generat the HTML5 public classref. The script can be run via `npm run docs` to print to stdout. You can dry run via `npm run docs -- --d dry-run` or write to file via `npm run docs -- -d /path/to/file.rst` Also update Makefile in `doc/` and add dry run test to CI.
2021-02-26[HTML5] Document Engine and EngineConfig (jsdoc).Fabio Alessandrelli
This commit also removes the utils.js engine file, moving some of it's content to config.js and some to engine.js .
2021-02-25Merge pull request #46403 from m4gr3d/fix_android_resources_inclusion_masterRémi Verschelde
Update the filtering logic to properly handle directories with `.gdignore` files
2021-02-25Merge pull request #46402 from nekomatata/natvis-local-vectorRémi Verschelde
Added LocalVector to Visual Studio debugger visualization
2021-02-24Update the filtering logic to properly handle directories with `.gdignore` ↵Fredia Huya-Kouadio
files.
2021-02-24Added LocalVector to Visual Studio debugger visualizationPouleyKetchoupp
2021-02-24Merge pull request #46381 from m4gr3d/update_godot_fragment_lifecycle_masterRémi Verschelde
Update the initialization timeline for the Godot fragment
2021-02-24Update the initialization timeline for the Godot fragment to be more ↵Fredia Huya-Kouadio
consistent with the previous activity based timeline.
2021-02-24Add logic to record the version of the Godot engine for the Android platform.Fredia Huya-Kouadio
2021-02-23Allow static linking with libatomic using clangHein-Pieter van Braam-Stewart
When using use_static_cpp we want to statically link with atomic as well to make sure we don't incur any new runtime dependencies. Scons doesn't quite support this so we do this little trick.
2021-02-22Use -latomic when using clang (server platform)Hein-Pieter van Braam-Stewart
version of c9b3a00a63fafa546bf402e32fd21ebe7f274b43 for the server platform
2021-02-20Merge pull request #46256 from hpvb/dri-prime-amd-masterHein-Pieter van Braam
Add 'AMD' GPU vendor name to PRIME detector
2021-02-20Add 'AMD' GPU vendor name to PRIME detectorHein-Pieter van Braam-Stewart
Apparently some recent Mesa version also changed AMD's vendor string. In addition I found a small uninitialized variable that's corrected now.
2021-02-20Use -latomic when linking whe using clang on LinuxHein-Pieter van Braam-Stewart
According to the LLVM documentation when using GNU's libstdc++ clang will not automatically link with -latomic. This is necessary since we merged c++11 atomics support. This fixes linking using Clang on Linux
2021-02-20An update to the dylibloader for older inttypesHein-Pieter van Braam-Stewart
This #define's older inttypes to their newer versions and #includes <stdint.h> in the generated files. This will help with older glibc/compiler versions using headers generated on newer systems. This closes #46223
2021-02-19Merge pull request #46200 from Faless/js/4.x_canvas_size_prRémi Verschelde
[HTML5] Easier HTML templates, better canvas size handling
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-18Merge pull request #46131 from bruvzg/move_tablet_to_dsRémi Verschelde
Move tablet driver API from OS to DisplayServer
2021-02-18Merge pull request #45617 from RandomShaper/modernize_atomicsRémi Verschelde
Modernize atomics (and fix `volatile`)
2021-02-18Modernize atomicsPedro J. Estébanez
- Based on C++11's `atomic` - Reworked `SafeRefCount` (based on the rewrite by @hpvb) - Replaced free atomic functions by the new `SafeNumeric<T>` - Replaced wrong cases of `volatile bool` by the new `SafeFlag` - Platform-specific implementations no longer needed Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18Move tablet driver API from OS to DisplayServer.bruvzg
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).