Age | Commit message (Collapse) | Author |
|
Improve the logic to compile for Android
|
|
[HTML5] Better editor persistent folders, automatically open zip import popup
|
|
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.
|
|
[4.0] [iOS] Additional 'linker_flags' plugin parameter
|
|
If 'Launch Screen' storyboard is present it will be used as loading screen.
|
|
|
|
Using any remote notification method (even indirectly) causes App Store to trigger APNS warning email.
|
|
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.
|
|
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).
|
|
[4.0] [iOS] Earlier plugin initialization
|
|
add search extensions for Scons' path
|
|
Linux: Enable udev support by default
|
|
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.
|
|
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.
|
|
Initialize iOS plugins before 'Main::setup' call to have access to them in script's '_init' function.
|
|
Modernize Thread
|
|
|
|
- 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)
|
|
|
|
http_escape and percent_encode have been unified into uri_encode, and http_unescape and percent_decode have been unified into uri_decode.
|
|
POSIX systems: go through all event devices, not just event[0-32]
|
|
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.
|
|
Moved AppDelegate push notifications methods implementation to 'GODOT_ENABLE_PUSH_NOTIFICATIONS'
which can be used in plugins to implement APNS plugins.
|
|
[4.0] [iOS] iOS Plugins Migration
|
|
Add separate `simulator` flag for iOS build, change main library to `xcframework`.
|
|
We don't want browsers to cache our temporary exports (since they will
always differ).
|
|
Side and GDNative libraries are now added by engine.js , the dynlink pre
js had been deleted.
|
|
|
|
Modernize RWLock
|
|
- 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`
|
|
|
|
|
|
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.
|
|
`xcframework` format.
|
|
|
|
|
|
|
|
|
|
Split OS::execute into two methods
|
|
Simplify helper functions, fix env/sys_env confusion and depends for
externs and pre-js.
|
|
|
|
1. execute(): Executes a command and returns the results.
2. create_process(): Creates a new process and returns the new process' id.
|
|
|
|
|
|
setting up the Android NDK if needed.
|
|
Fixed warning at window closing (WIN32)
|
|
Add WebXR support (for Godot 4.0)
|
|
|
|
Update the logic to sign prebuilt Godot Android apks
|
|
The previously used tool, `jarsigner` has been deprecated in favor of `apksigner` which is bundled with the Android SDK.
The logic is refactored accordingly and a few editor settings have been deprecated in the process as they're no longer necessary.
Note: As a side effect, specifying the Android SDK path is now required. The docs will be updated to reflect that change.
|