summaryrefslogtreecommitdiff
path: root/platform
AgeCommit message (Collapse)Author
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)
2021-01-28Don't handle BaseException in JavaScript build scriptMarcel Admiraal
2021-01-28Unify URI encoding/decoding and add to C#Aaron Franke
http_escape and percent_encode have been unified into uri_encode, and http_unescape and percent_decode have been unified into uri_decode.
2021-01-27Merge pull request #45481 from ronchaine/joypad-detectionRémi Verschelde
POSIX systems: go through all event devices, not just event[0-32]
2021-01-27Go through all event devices, not just event[0-32]Jari Ronkainen
There are no guarantees that joypads are in event0-event32 range. Some devices, such as laptops with detachable keyboards and wacom can reserve events all the way up to 32. Some udev rules with e.g. custom controller firmwares may load the device as /dev/input/eventX, where X is greater than 32. This patch uses POSIX dirent to enumerate the event devices, so entries outside 0-32 range are not skipped.
2021-01-26[iOS] Rework push notification methods usageSergey Minakov
Moved AppDelegate push notifications methods implementation to 'GODOT_ENABLE_PUSH_NOTIFICATIONS' which can be used in plugins to implement APNS plugins.
2021-01-26Merge pull request #45252 from naithar/feature/plugins-migrationRémi Verschelde
[4.0] [iOS] iOS Plugins Migration
2021-01-26Merge pull request #45277 from bruvzg/ios_arm64_simRémi Verschelde
Add separate `simulator` flag for iOS build, change main library to `xcframework`.
2021-01-25[HTML5] Builtin HTTP server disable browsers cacheFabio Alessandrelli
We don't want browsers to cache our temporary exports (since they will always differ).
2021-01-25[HTML5] Better editor HTML, small refactor.Fabio Alessandrelli
Side and GDNative libraries are now added by engine.js , the dynlink pre js had been deleted.
2021-01-25[HTML5] Fix "initial_memory" build option parsingFabio Alessandrelli
2021-01-22Merge pull request #45314 from RandomShaper/modernize_rwlockRémi Verschelde
Modernize RWLock
2021-01-19Modernize RWLockPedro J. Estébanez
- Based on C++14's `shared_time_mutex` - No more need to allocate-deallocate or check for null - No pointer anymore, just a member variable - Platform-specific implementations no longer needed - Simpler for `NO_THREADS`
2021-01-18BUGFIX: Fix unintialized cursor_shape on windows display serverMarios Staikopoulos
2021-01-18[iOS] Fix embedding of plugin librariesSergey Minakov
2021-01-18[HTML5] Custom Gamepad library to allow remapping.Fabio Alessandrelli
No longer use emscripten functions for gamepads, implement them as library functions in library_godot_display.js instead. This allows us to do a better job at "guessing" vendorId, productId, OS, etc. thus allowing us to better find the remapping for the controller.
2021-01-18[WIP] Add separate `simulator` flag for iOS build, change main library to ↵bruvzg
`xcframework` format.
2021-01-17[iOS] Remove plugins from modules.Sergey Minakov
2021-01-17[iOS] Added support for '.xcframework' in pluginsSergey Minakov
2021-01-15[Plugins] Rename 'PluginConfig' struct to platform specific nameSergey Minakov
2021-01-12CI: Update to clang-format 11 and apply ternary operator changesRémi Verschelde
2021-01-12Merge pull request #44514 from madmiraal/split-os-executeRémi Verschelde
Split OS::execute into two methods
2021-01-10[HTML5] Reorganize build script.Fabio Alessandrelli
Simplify helper functions, fix env/sys_env confusion and depends for externs and pre-js.
2021-01-10Fix JavaScript platform after MainLoop methods rename.Fabio Alessandrelli
2021-01-09Split OS::execute into two methodsMarcel Admiraal
1. execute(): Executes a command and returns the results. 2. create_process(): Creates a new process and returns the new process' id.
2021-01-06Removes semicolon typo in display_server_windowsYuri Roubinsky
2021-01-06Fix PopupMenu's which are not closed after a recent commitYuri Roubinsky