Pedro J. Estébanez
8ed259b792
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`
2021-01-19 11:53:10 +01:00
Marios Staikopoulos
2a2de2f684
BUGFIX: Fix unintialized cursor_shape on windows display server
2021-01-18 15:52:47 -08:00
Sergey Minakov
6d67827f4e
[iOS] Fix embedding of plugin libraries
2021-01-18 19:23:12 +03:00
Fabio Alessandrelli
bab20c6e09
[HTML5] Custom Gamepad library to allow remapping.
...
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 12:30:38 +01:00
bruvzg
efd8f27790
[WIP] Add separate simulator
flag for iOS build, change main library to xcframework
format.
2021-01-18 10:36:14 +02:00
Sergey Minakov
13a6a83b44
[iOS] Remove plugins from modules.
2021-01-17 14:33:39 +03:00
Sergey Minakov
01d513f3ca
[iOS] Added support for '.xcframework' in plugins
2021-01-17 14:13:09 +03:00
Sergey Minakov
7990c2c5e8
[Plugins] Rename 'PluginConfig' struct to platform specific name
2021-01-15 17:54:35 +03:00
Rémi Verschelde
af878716f2
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-12 19:32:53 +01:00
Rémi Verschelde
1218441b16
Merge pull request #44514 from madmiraal/split-os-execute
...
Split OS::execute into two methods
2021-01-12 16:17:04 +01:00
Fabio Alessandrelli
c327f42b0a
[HTML5] Reorganize build script.
...
Simplify helper functions, fix env/sys_env confusion and depends for
externs and pre-js.
2021-01-10 12:24:40 +01:00
Fabio Alessandrelli
33e914b1eb
Fix JavaScript platform after MainLoop methods rename.
2021-01-10 12:04:09 +01:00
Marcel Admiraal
2a74b388d0
Split OS::execute into two methods
...
1. execute(): Executes a command and returns the results.
2. create_process(): Creates a new process and returns the new process' id.
2021-01-09 10:03:23 +00:00
Yuri Roubinsky
785f84f1d1
Removes semicolon typo in display_server_windows
2021-01-06 15:08:51 +03:00
Yuri Roubinsky
d4939aa05f
Fix PopupMenu's which are not closed after a recent commit
2021-01-06 14:42:15 +03:00
Fredia Huya-Kouadio
eee213e01a
Improve the logic to compile for Android by automatically detecting and setting up the Android NDK if needed.
2021-01-05 15:07:17 -08:00
Rémi Verschelde
9d6df31b84
Merge pull request #44299 from Chaosus/fix_win32_warning
...
Fixed warning at window closing (WIN32)
2021-01-05 09:00:47 +01:00
Rémi Verschelde
c13bb0b541
Merge pull request #44154 from dsnopek/webxr-master
...
Add WebXR support (for Godot 4.0)
2021-01-05 00:19:50 +01:00
David Snopek
a54a2d65e1
Add support for WebXR
2021-01-04 17:02:37 -06:00
Rémi Verschelde
3433780c49
Merge pull request #44645 from m4gr3d/update_apk_signing_logic
...
Update the logic to sign prebuilt Godot Android apks
2021-01-01 22:58:11 +01:00
Fredia Huya-Kouadio
49969de221
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.
2021-01-01 13:36:27 -08:00
Rémi Verschelde
b5334d14f7
Update copyright statements to 2021
...
Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Yuri Roubinsky
41efbf8cae
Fixed warning at project startup (WIN32)
2021-01-01 18:09:34 +03:00
Yuri Roubinsky
8a2bc6bf58
Fix window restoring after fullscreen again
2020-12-31 16:07:05 +03:00
Rémi Verschelde
72c13c2631
Merge pull request #44638 from m4gr3d/export_format_util_method
...
Hardcode the export format for the editor 'run' feature
2020-12-30 09:11:31 +01:00
Fredia Huya-Kouadio
de64b783b4
Add utility method to export the project using a preset format and sign parameter.
2020-12-29 09:04:01 -08:00
Rémi Verschelde
09212fba1e
Fix missed renamings from empty() to is_empty()
...
Those were missed in #44401 or added by later PRs.
2020-12-29 09:55:07 +01:00
Rémi Verschelde
8886a6a45c
Merge pull request #44757 from andrew-softdev/my-bug-fix
...
Incorrect format specifiers used to display some type data in the Visual Studio debugger
2020-12-28 20:44:15 +01:00
andrew-softdev
679aabea26
Incorrect format specifiers used to display some String/StringName data
2020-12-28 18:46:32 +00:00
Rémi Verschelde
e4c0572385
Merge pull request #44593 from madmiraal/rename-mainloop-methods
...
Rename MainLoop methods to match Node methods
2020-12-28 14:44:28 +01:00
Marcel Admiraal
5b937d493f
Rename empty() to is_empty()
2020-12-28 10:39:56 +00:00
Rémi Verschelde
719e4b1156
Merge pull request #44619 from bruvzg/m1_dragdrop_4
...
[4.0] Fix file drag-drop on M1 Macs.
2020-12-23 17:37:42 +01:00
bruvzg
39bcc77d6a
[4.0] Fix file drag-drop on M1 Macs.
2020-12-23 18:00:50 +02:00
Fredia Huya-Kouadio
2d492ff8ba
Fix invalid invocation of get_class_loader
.
...
The call was made on a `Godot` instance instead of an `Activity` instance.
2020-12-23 02:08:27 -08:00
Marcel Admiraal
d9e9eb8d04
Rename MainLoop methods to match Node methods
2020-12-22 12:34:57 +00:00
Marcel Admiraal
2df9a8ccad
Rename Rect2 and Rect2i clip() to intersection()
2020-12-19 12:59:08 +00:00
Rémi Verschelde
214a22b98e
Merge pull request #44457 from akien-mga/scons-thirdparty-lib-depends
...
SCons: Add explicit dependencies on thirdparty code in cloned env
2020-12-18 13:40:33 +01:00
Marcel Admiraal
b56a2f34ce
Add missing override keywords in os_windows.h
2020-12-18 09:38:09 +00:00
Rémi Verschelde
c7b53c03ae
SCons: Add explicit dependencies on thirdparty code in cloned env
...
Since we clone the environments to build thirdparty code, we don't get an
explicit dependency on the build objects produced by that environment.
So when we update thirdparty code, Godot code using it is not necessarily
rebuilt (I think it is for changed headers, but not for changed .c/.cpp files),
which can lead to an invalid compilation output (linking old Godot .o files
with a newer, potentially ABI breaking version of thirdparty code).
This was only seen as really problematic with bullet updates (leading to
crashes when rebuilding Godot after a bullet update without cleaning .o files),
but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.
2020-12-18 10:29:34 +01:00
Rémi Verschelde
5332d212f9
Merge pull request #44467 from madmiraal/add-override-keywords
...
Add missing override keywords to core/os.h derived classes
2020-12-17 23:02:58 +01:00
Marcel Admiraal
fa435a550a
Add override keywords to core/os.h derived classes.
2020-12-17 18:02:31 +00:00
Marcel Admiraal
60ddca2545
Remove OS::can_draw() remnants
2020-12-17 16:35:48 +00:00
Rémi Verschelde
ae0399382a
Merge pull request #44433 from akien-mga/scons-fix-platform-opts
...
SCons: Add only selected platform's opts to env
2020-12-17 09:56:07 +01:00
Rémi Verschelde
fb2465b3c8
Merge pull request #44410 from KoBeWi/project--tools--thisPR
...
Make tool menu plugins use Callables for callback
2020-12-16 22:04:39 +01:00
kobewi
889f5e44ef
Make tool menu plugins use Callables for callback
2020-12-16 20:23:51 +01:00
Rémi Verschelde
0f84d8dc49
SCons: Add only selected platform's opts to env
...
Otherwise we can get situations where platform-specific opts with the same name
can override each other depending on the order at which platforms are parsed,
as was the case with `use_static_cpp` in Linux/Windows.
Fixes #44304 .
This also has the added benefit that the `scons --help` output will now only
include the options which are relevant for the selected (or detected) platform.
2020-12-16 16:31:19 +01:00
Marcel Admiraal
f9b83e90b2
Fix named anonymous struct warning
2020-12-16 07:42:16 +00:00
Rémi Verschelde
2760f5d0b4
Merge pull request #44315 from madmiraal/fix-handles-baseexception
...
Don't handle BaseException in build scripts
2020-12-12 12:23:07 +01:00
Marcel Admiraal
8ef5e3201c
Don't handle BaseException in build scripts
2020-12-12 10:05:42 +00:00
Rémi Verschelde
8020515717
HTML5: Code style cleanup for export code
2020-12-10 13:57:46 +01:00
Rémi Verschelde
37d0d757d6
Merge pull request #40708 from bruvzg/improve_os_locale
...
Improve `OS::get_locale()` and documentation.
2020-12-10 11:49:00 +01:00
Fabio Alessandrelli
eb2152538c
[HTML5] Fix errors when Mic is not allowed.
2020-12-09 17:54:50 +01:00
Fabio Alessandrelli
a28d5e2be7
[HTML5] Improve platform buildsystem.
...
Check emcc version requirements when building GDNative.
Add more build options (sanitizers, initial memory).
2020-12-09 17:54:50 +01:00
Fabio Alessandrelli
6bc07cf777
[HTML5] Add logo and favicon to editor html.
2020-12-09 17:54:50 +01:00
Rémi Verschelde
114f97ff11
Merge pull request #44128 from KoBeWi/ 🧹
...
Cleanup unused engine code
2020-12-09 13:01:50 +01:00
Tomasz Chabora
2c048ea164
Cleanup unused engine code
2020-12-09 12:12:36 +01:00
Fabio Alessandrelli
09a9712a6a
Remove unused FileAccessJAndroid.
2020-12-09 10:58:36 +01:00
Rémi Verschelde
e5e1277ecd
Merge pull request #44161 from Faless/fix/fa_buffered_remove
...
Remove unused FileAccessBuffered
2020-12-09 09:14:14 +01:00
thebestnom
d543917c03
Android: fix mouse capture relative wrong
2020-12-08 23:51:45 +02:00
thebestnom
e7f259c366
Android: Allow Mouse Capture
2020-12-08 22:14:08 +02:00
Rémi Verschelde
90bdba576a
Merge pull request #43742 from qarmin/editor_modules_default_values
...
Initialize class/struct variables with default values in platform/ and editor/
2020-12-08 15:53:42 +01:00
Rémi Verschelde
efc2104096
Merge pull request #44021 from dakennedyd/personal
...
Fix implementation of move_to_trash() on Linux
2020-12-07 21:06:10 +01:00
David Kennedy
8b68c6808d
Fixes move_to_trash() on Linux
...
Fixes #42840 OS move_to_trash() on Linux is not compliant with the Freedesktop specification
2020-12-07 16:40:56 -03:00
Rémi Verschelde
e20011b0da
Merge pull request #44076 from Faless/js/4.x_gdnative
...
[HTML5] Optional GDNative Support
2020-12-07 15:34:33 +01:00
Fabio Alessandrelli
781efc26e0
Remove now unused FileAccessBuffered.
2020-12-06 19:37:11 +01:00
Fabio Alessandrelli
1396c74734
[HTML5] Use regular unix FileAccess implementation.
2020-12-06 19:25:31 +01:00
Fabio Alessandrelli
dd9503dc19
[HTML5] Make GDNative support feature-based.
...
This is suboptimal as it requires adding an extra compile flag, but
rewriting how feature tags work is beyond the scope of this work.
2020-12-05 01:12:52 +01:00
Fabio Alessandrelli
1e7bd3d08b
[HTML5] Allow selecting the export type.
...
Available types:
- Regular
- GDNative (support dynamic linking and thus GDNative WASM files)
- Threads (uses WebAssembly Threads)
2020-12-05 00:55:11 +01:00
Fabio Alessandrelli
611c4998e8
[HTML5] EditorRunNative works with GDNative.
...
This "breaks" our loading bar logic (libraries are not counted).
Fixing it is non trivial and probably deserves investigating a different
strategy.
2020-12-05 00:55:07 +01:00
Fabio Alessandrelli
ca34b5e57a
[HTML5] GDNative support via SIDE_MODULE.
...
Working with emscripten >= 2.0.10
2020-12-05 00:52:43 +01:00
Fabio Alessandrelli
1167ab96e9
[HTML5] Add function signatures to JS libraries.
2020-12-04 23:21:33 +01:00
reduz
2787ad65be
RenderingServer reorganization
2020-12-04 18:39:46 -03:00
Rémi Verschelde
02d228554b
OSX: Fix tmp .app folder name after #44060
2020-12-04 14:16:49 +01:00
Bastiaan Olij
cf5737acbe
Added driving joystick type to windows joystick handling
2020-12-04 23:31:19 +11:00
Rémi Verschelde
328af1db75
Merge pull request #44074 from reduz/reorganize-3d
...
Reorganize rendering server.
2020-12-04 08:36:31 +01:00
Rémi Verschelde
586a20875d
Merge pull request #44018 from lyubomirv/mingw_use_static_cpp_option
...
Add 'use_static_cpp' option for MinGW builds
2020-12-03 23:58:57 +01:00
reduz
e93b2242c2
Reorganize rendering server.
...
-Made RenderingServerScene abstract, allowing reimplementation
-RenderingServerRaster -> RenderingServerDefault, but this class is going away soon.
2020-12-03 19:01:01 -03:00
Lyubomir Vasilev
e52c9c26fc
Add 'use_static_cpp' option for MinGW and MSVC builds
2020-12-03 23:46:16 +02:00
alan-w-255
7fa803fa2c
fix android wrong multi-touch pointerid
...
Fixes #43519 .
2020-12-03 13:34:04 +01:00
Rémi Verschelde
707a62783b
OSX: Remove tmp .app folder instead of moving to trash
...
Fixes #42232 .
And fixes memory leak with use of DirAccess, and harmonize the use of
the sanitized pkg name.
2020-12-03 10:07:40 +01:00
Rafał Mikrut
e1811b689b
Initialize class/struct variables with default values in platform/ and editor/
2020-12-02 16:09:11 +01:00
Rémi Verschelde
f1a9de9c59
X11: Include limits.h for LONG_MAX
...
Fixes #44030 .
2020-12-02 15:43:29 +01:00
Fabio Alessandrelli
178546ac3e
[HTML5] Fix broken layout on load in HiDPI screens
...
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 12:07:20 +01:00
Fabio Alessandrelli
742729ccfe
[HTML5] Remove file flags from writeFile in setup.
...
Flags where deprecated and partly in removed in emscripten 2.0.9.
2020-11-30 12:07:20 +01:00
Rémi Verschelde
a6751e6c58
Merge pull request #41100 from bruvzg/ctl_text_server_interface
...
[Complex Text Layouts] Implement TextServer interface.
2020-11-28 09:03:15 +01:00
PouleyKetchoupp
6b97901d4d
Implement INCR mechanism for Linux clipboard
...
Allows pasting from x11 clipboard to receive data incrementally, which
is required when handling data size > 256KB.
2020-11-27 10:00:09 -07:00
bruvzg
99666de00f
[Complex Text Layouts] Refactor Font class, default themes and controls to use Text Server interface.
...
Implement interface mirroring.
Add TextLine and TextParagraph classes.
Handle UTF-16 input on macOS and Windows.
2020-11-26 14:25:48 +02:00
bruvzg
b9f441e81e
[Complex Text Layouts] Add third-party TextServer dependencies (ICU, HarfBuzz, Graphite).
2020-11-26 13:55:27 +02:00
Rémi Verschelde
a4e04cdd47
Merge pull request #42652 from nekomatata/x11-clipboard-save-targets
...
Implement SAVE_TARGETS mechanism for Linux clipboard
2020-11-26 09:34:18 +01:00
Rémi Verschelde
09f3053450
SCons: Do not define TYPED_METHOD_BIND on Linux/clang
...
It's now only needed for MSVC.
2020-11-25 19:27:30 +01:00
Rémi Verschelde
4159baff6c
Merge pull request #42648 from naithar/fix/native_video_view
...
[iOS] Native video fixes
2020-11-24 10:41:01 +01:00
Rémi Verschelde
617031434f
Merge pull request #43803 from m4gr3d/update_signing_and_zipalign_logic_master
...
Update gradle build files to automatically perform signing and zipalign tasks for custom builds
2020-11-24 08:39:06 +01:00
Fabio Alessandrelli
4617a7fa9c
[HTML5] Run eslint --fix.
...
Should I write a poem about this whole new world? ;)
2020-11-23 12:15:18 +01:00
Fabio Alessandrelli
c38984d286
[HTML5] Enforce JavaScript style with eslint.
...
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-23 12:15:18 +01:00
Fredia Huya-Kouadio
918b218b55
Update gradle build files to automatically perform signing and zipalign tasks for custom builds.
2020-11-22 18:11:54 -08:00
Fabio Alessandrelli
a82f70ea9f
[HTML5] Libraries refactor for linting.
...
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-21 14:22:40 +01:00
Rémi Verschelde
504efc5f9b
Export: Reorder options for consistency across platforms
2020-11-20 11:17:50 +01:00
Rémi Verschelde
f69339c2c2
Merge pull request #43692 from akien-mga/scons-leave-link-alone
...
SCons: Remove unnecessary $LINK overrides
2020-11-19 20:43:25 +01:00
Rémi Verschelde
2e4bff1cfe
SCons: Remove unnecessary $LINK overrides
...
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-19 16:48:03 +01:00
Rémi Verschelde
dbbbb53927
OSX: Fix linking with osxcross for arm64
...
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-19 16:32:32 +01:00