Commit Graph

400 Commits

Author SHA1 Message Date
bruvzg dab4cf3ed6
Add `physical_scancode` (keyboard layout independent keycodes) to InputEventKey and InputMap.
Fix non-latin keyboard layout keycodes on Linux/X11 (fallback to physical keycodes).
2021-05-06 23:19:45 +03:00
Rémi Verschelde 140350d767
Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
Rémi Verschelde a828398655
Style: Replaces uses of 0/NULL by nullptr (C++11)
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2021-05-04 16:30:23 +02:00
Rémi Verschelde b5e1e05ef2
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
Rémi Verschelde 3d15f04668
Style: clang-format: Disable AllowShortIfStatementsOnASingleLine 2021-05-04 14:45:15 +02:00
Rémi Verschelde 6e600cb3f0
Style: Set clang-format Standard to c++14 2021-05-04 14:45:15 +02:00
Sergey Minakov f9535554fa
[iOS] Nonnegative start index for virtual keyboard range
(cherry picked from commit 275772818d)
2021-04-30 12:15:24 +02:00
Rémi Verschelde 8ec14c917f
Merge pull request #47469 from HEAVYPOLY/ios-pen-pressure
Add iOS pen pressure
2021-04-28 17:01:05 +02:00
Sergey Minakov cdd921e908
[iOS] Fix for plugin modified time check
(cherry picked from commit 15630a4931)
2021-04-14 13:29:55 +02:00
Vaughan Ling f60b90d92e Add iOS Apple Pencil pressure 2021-04-03 10:30:57 -07:00
Rafał Mikrut 6b6324441f
Allow to not optimize release build
(cherry picked from commit 0b298d201e)
2021-03-20 23:05:13 +01:00
Pedro J. Estébanez 4485b43a57 Modernize atomics
- 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` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 12:23:25 +01:00
Pedro J. Estébanez 6d89f675b1 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)
2021-02-18 11:58:08 +01:00
Pedro J. Estébanez 8f6a636ae7 Modernize Semaphore
- Based on C++11's `mutex` and `condition_variable`
- 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-02-18 11:58:08 +01:00
Pedro J. Estébanez 4ddcdc031b Modernize Mutex
- Based on C++11's `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`
- `BinaryMutex` added for special cases as the non-recursive version
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
2021-02-18 11:58:08 +01:00
Sergey Minakov 518ba25fae [iOS] Remove remote notifications code
Using any remote notification method (even indirectly) causes App Store to trigger APNS warning email.

(cherry picked from commit 4fda1ae6b8)
2021-02-05 09:26:09 +01:00
Rémi Verschelde cdb5ac52f5
Merge pull request #45685 from naithar/feature/extend-plugin-params
[3.2] [iOS] Additional 'linker_flags' plugin parameter
2021-02-03 18:37:47 +01:00
Sergey Minakov fdec8d726d iOS: Use storyboard as loading screen
If 'Launch Screen' storyboard is present it will be used as loading screen.
2021-02-03 20:01:05 +03:00
Sergey Minakov 309835b917 [iOS] Additional 'linker_flags' plugin parameter 2021-02-03 18:22:17 +03:00
Sergey Minakov 19d240c8a7 [iOS] Initialize plugins earlier
Initialize iOS plugins before 'Main::setup' call to have access to them in script's '_init' function.
2021-02-01 15:28:14 +03:00
Rémi Verschelde c2ea80348c
Revert "[3.2] Add separate `simulator` flag for iOS build, change main library to `xcframework`." 2021-01-27 21:53:16 +01:00
Sergey Minakov d2af815039
[iOS] Rework push notification methods usage
Moved AppDelegate push notifications methods implementation to 'GODOT_ENABLE_PUSH_NOTIFICATIONS'
which can be used in plugins to implement APNS plugins.

(cherry picked from commit 366ce084f4)
2021-01-26 22:11:10 +01:00
Sergey Minakov 7c076fbd0b
[iOS] Fix embedding of plugin libraries
(cherry picked from commit 6d67827f4e)
2021-01-26 17:00:15 +01:00
Sergey Minakov 7689f05786
[iOS] Added support for '.xcframework' in plugins
(cherry picked from commit 01d513f3ca)
2021-01-26 17:00:15 +01:00
Rémi Verschelde c5a22d7284
Merge pull request #45480 from bruvzg/ios_arm64_sim_3
[3.2] Add separate `simulator` flag for iOS build, change main library to `xcframework`.
2021-01-26 15:20:27 +01:00
bruvzg 389a4bfa59
[3.2] Add separate `simulator` flag for iOS build, change main library to `xcframework` format. 2021-01-26 16:00:26 +02:00
Sergey Minakov d4096285b6 [iOS] Remove plugins from modules. 2021-01-17 14:46:03 +03:00
Rémi Verschelde 7e207cfd48
i18n: Sync translations with Weblate 2021-01-15 16:49:47 +01:00
Rémi Verschelde c47ad12e80
Merge pull request #43557 from naithar/feature/pluggable_app_delegates_3.2
[3.2] [iOS] Pluggable application delegate
2021-01-15 16:14:21 +01:00
Sergey Minakov 64923945b3 [Plugins] Rename 'PluginConfig' struct to platform specific name 2021-01-15 02:12:53 +03:00
Sergey Minakov cb15abda29 iOS Export: support multi-target plugin
Plugins can use 'binary_name.a' or 'binary_name.release.a' and 'binary_name.debug.a' for plugin library.
2021-01-14 15:38:16 +03:00
Sergey Minakov d5047603a3 iOS Export: export modification to support plugins
Added plugin configuration.
Export options now use plugins that could be enabled/disabled.
Plugin changes are observed at runtime.
2021-01-14 15:38:05 +03:00
Sergey Minakov 03cf3d5d4b iOS: change platform code to support plugins 2021-01-14 15:30:09 +03:00
Sergey Minakov 614f701373 iOS Modules: separate main platform code from modules
Moved previously builtin modules 'GameCenter', 'AppStore', 'iCloud' to separate modules to be represented as plugin.
Modified 'ARKit' and 'Camera' to not be builtin into engine and work as plugin.
Changed platform code so it's not affected by the move.
Modified Xcode project file to remove parameters that doesn't make any effect.
Added basic '.gdip' plugin config file.
2021-01-14 15:30:00 +03:00
Rémi Verschelde 49646383f1
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 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Rémi Verschelde 60959b085d
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.

(cherry picked from commit 0f84d8dc49)
2020-12-29 16:02:00 +01:00
Sergey Minakov 8b6357cf28 iOS: fix keyboard display 2020-12-16 05:05:38 +03:00
Sergey Minakov 067d015d38
iOS: fix native video
Fixed view not being displayed.
Fixed view orientation change.

(cherry picked from commit 6b2483c331)
2020-11-26 09:38:47 +01:00
Rémi Verschelde 4a1643114e
Export: Reorder options for consistency across platforms
(cherry picked from commit 504efc5f9b)
2020-11-26 09:38:46 +01:00
Sergey Minakov 4991872305 iOS: Implement pluggable application delegate. 2020-11-15 14:27:07 +03:00
bruvzg df6ea27ab3
[3.2] Disable iOS SDK version check on osxcross.
Currently, osxcross `xcrun` supports only macOS SDKs.
2020-10-21 07:56:05 +03:00
Rémi Verschelde 3b4005026d
Merge pull request #42593 from bruvzg/ios_sdk_ver_check
[3.2] Add iOS SDK version check.
2020-10-20 15:12:59 +02:00
Sergey Minakov b07877cd27 iOS: fix in app store
Enforce strong reference for SKRequests and delegate objects for transactions to work correctly
2020-10-16 15:51:12 +03:00
bruvzg d44bc8d5bc
[3.2] Add iOS SDK version check. 2020-10-06 11:33:52 +03:00
Sergey Minakov 5d1284204d iOS: port ARC support 2020-10-06 00:23:25 +03:00
Sergey Minakov 2bdfec2418 iOS: Refactor platform code
Change project structure to be more like 4.0
Refactor and remove old code as followup after deprecations fix
2020-10-06 00:23:09 +03:00
Rémi Verschelde 014147e511
Merge pull request #40557 from PoqXert/game-center
iOS Game Center improvements
2020-10-02 10:58:14 +02:00
Poq Xert ea5833fc4c iOS GameCenter: Add authenticate method
And no longer connect automatically.
2020-10-02 01:20:11 +10:00
Sergey Minakov 3386fac02c iOS: fix deprecations
Change deprecated method calls to new ones.
Guard iOS version dependant functionality behind availability checks.
2020-10-01 18:09:55 +03:00
Rémi Verschelde 58f5b25340
Merge pull request #41173 from naithar/fix/iphone-os-values-3.2
[iOS] [3.2] Simplify OS values retrieval
2020-10-01 13:09:36 +02:00