Commit Graph

3346 Commits

Author SHA1 Message Date
Rémi Verschelde ed869729ae
Merge pull request #56755 from madmiraal/fix-45592-3.x 2022-01-24 10:06:24 +01:00
lawnjelly adf14bfdde Add nodiscard to core math classes to catch c++ errors.
A common source of errors is to call functions (such as round()) expecting them to work in place, but them actually being designed only to return the processed value. Not using the return value in this case in indicative of a bug, and can be flagged as a warning by using the [[nodiscard]] attribute.
2022-01-20 17:28:31 +00:00
Rémi Verschelde a9b10054b8
Merge pull request #56950 from timothyqiu/has-clipboard-3.x 2022-01-20 12:09:53 +01:00
bruvzg 30ee208bd9
[macOS export, 3.x] Implements ad-hoc signing on Linux/Windows, adds extra privacy settings, entitlements warnings and error checking. 2022-01-20 10:46:29 +02:00
bruvzg 0e5f063b5b
Improve iOS icon / loading screen export.
Merge "required" / "optional" icons into a single list.
Remove "generate_missing" and automatically rescale icons / loading screens that are missing or have incorrect size.
Print warning if icon or loading screen has incorrect size.
2022-01-19 16:04:16 +01:00
Haoyu Qiu 76297e744d Add `OS.has_clipboard()` to check clipboard content 2022-01-19 20:19:06 +08:00
Rémi Verschelde c938104a88
Merge pull request #56630 from Pineapple/replace-find-last 2022-01-18 16:36:52 +01:00
Rémi Verschelde 1ee44b2366
ImageLoader: Remove references to unsupported svgz extension
I don't see any reference to gzip/svgz supported in the nanosvg library,
and the handful of test gzip compressed svgz files I tried failed loading.

Also cleaning a couple missing includes in platform export code.
2022-01-17 10:52:32 +01:00
Rémi Verschelde 879244c54e
Merge pull request #56015 from bruvzg/phy_code_conv 2022-01-16 11:36:26 +01:00
Marcel Admiraal 949ea2b326 Simplify InputDefault::joy_axis code by using float instead of struct JoyAxis 2022-01-14 15:36:35 +00:00
Rémi Verschelde a627cdafc5
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-13 15:54:13 +01:00
Marcel Admiraal b7545631de Use mouse event relative motion to calculate mouse speed 2022-01-13 10:29:57 +00:00
Bartłomiej T. Listwon 2f92d5900a
UWP: Simplify QueryPerformanceCounter usage
(cherry picked from commit 24fe82da63)
2022-01-12 17:33:02 +01:00
Bartłomiej T. Listwon e1429dd80f
Windows: Simplify QueryPerformanceCounter usage
(cherry picked from commit 5ba38fb208)
2022-01-12 17:32:50 +01:00
bruvzg 16bb18c453
[macOS] Improve window activation hack.
(cherry picked from commit 927105692f)
2022-01-12 17:28:08 +01:00
Rémi Verschelde 123fcfaf83
Merge pull request #56676 from winterpixelgames/3.x-android-keystore-paths 2022-01-12 16:46:00 +01:00
Bastiaan Olij 4df4d72caf
Wrong call for create_offscreen_gl
We need to use `CallVoidMethod` instead of `CallBooleanMethod` to call `create_offscreen_gl`.
2022-01-12 11:01:24 +11:00
Jason Knight 39070291ef Android export plugin passes absolute file paths to gradle for keystores. 2022-01-10 15:16:00 -06:00
Rémi Verschelde 8a192cd0ab
Merge pull request #55987 from bruvzg/wt🤎3 2022-01-10 16:43:56 +01:00
Bartłomiej T. Listwon 22750b1c03 Replace String::find_last with rfind where possible (backward compatible with old API) 2022-01-08 22:40:44 +01:00
Max Hilbrunner 36af1abbe0 Windows input: fix bracket -> brace for US input 2022-01-07 12:14:21 +01:00
Pierre-Thomas Meisels 7dd8e364b1
OSX: Add signing of directory structure in Library when exporting for OSX.
Add exporting of folder structure in PlugIns when exporting for OSX.
2022-01-07 01:15:37 +01:00
Rémi Verschelde b197de6f5f
Fix typos with codespell
Using codespell 2.1.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
readded
seeked
statics
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2022-01-07 00:14:54 +01:00
bruvzg 6f81a8ee2c
Fix multiple missing UTF-8 decoding.
(cherry picked from commit c69e0d16bc)
2022-01-06 21:44:40 +01:00
ne0fhyk 0448d4e26e
Fix Android Studio builds.
(cherry picked from commit 1345e66935)
2022-01-06 00:24:42 +01:00
bruvzg d2558bdc8c
Fix decoding UTF-8 filenames on unzipping.
(cherry picked from commit d2573c1636)
2022-01-06 00:21:37 +01:00
Marcel Admiraal 913855926d Fix tablet tilt values returning bad values 2022-01-02 12:16:04 +00:00
Rémi Verschelde 50e1764a33
Merge pull request #56059 from bruvzg/macos_gl_off_ctx 2021-12-21 09:20:03 +01:00
bruvzg ccdf1a9934
[macOS] Fix OpenGL flickering.
Fix incorrect context usage for off-screen drawing.
Remove kCGLCEMPEngine, which is causing flicker.
Disable window redraw during resize, when rendering in the separate thread.
2021-12-18 21:02:13 +02:00
bruvzg 59085d5051
[Windows] Improve console handling and execute.
Always build with the GUI subsystem.
Redirect stdout and stderr output to the parent process console.
Use CreateProcessW for blocking `execute` calls with piped stdout and stderr (prevent console windows for popping up when used with the GUI subsystem build, and have more consistent behavior with non-blocking calls).
Add `open_console` argument to the `execute` to open a new console window (for both blocking and non-blocking calls).
Remove `interface/editor/hide_console_window` editor setting.
Remove `Toggle System Console` menu option.
Remove `set_console_visible` and `is_console_visible` functions.
2021-12-18 10:13:27 +02:00
Wilson E. Alvarez 3f94ea6271
Fix detected leaks/heap-use-after-free by AddressSanitizer at startup 2021-12-17 15:12:55 -05:00
Wilson E. Alvarez 1b8a9d56b3
Set default priority on PRIME detection vendor struct. 2021-12-17 15:12:17 -05:00
bruvzg b4ec1c5817
Backport: Allow for mapping scancodes to current layout
Co-authored-by: Frixuu <kontakt@lukasz.xyz>
2021-12-17 13:04:47 +02:00
Sam Lantinga 9efdac2761
Fixed detecting the Valve Streaming Gamepad
Fixed the GUID, and compare the contents of the GUID, not just the pointers

(cherry picked from commit 8df0baf6f5)
2021-12-17 00:14:50 +01:00
Rémi Verschelde 62b181a4ef
Merge pull request #55967 from bruvzg/wt💩3 2021-12-16 23:05:40 +01:00
Marcel Admiraal b5d325e6ff Only rotate Android sensor values for sensors that need them rotated 2021-12-15 18:15:25 +00:00
bruvzg 9aef3a93dd
[Windows] Detect new Windows Terminal and disable unsupported set_console_visible code. 2021-12-15 20:00:35 +02:00
bruvzg 38c1706a7d
[Windows] Open a new console window for the editor instances. 2021-12-14 14:38:42 +02:00
Aaron Franke 7bf7bd70ac
[3.x] Misc build system fixes 2021-12-10 12:15:16 -06:00
Rémi Verschelde 45aac0b9e9
Merge pull request #55768 from m4gr3d/config_hand_tracking_frequency_3x 2021-12-09 23:05:06 +01:00
Fredia Huya-Kouadio 4f6ce8a7ba
Enable configuration of the `android:excludeFromRecents` activity attribute.
(cherry picked from commit cfa81ff32a)
2021-12-09 23:03:19 +01:00
Rémi Verschelde 599ae423ba
Merge pull request #55735 from m4gr3d/add_min_target_sdk_configs 2021-12-09 23:01:56 +01:00
ne0fhyk 9d22ad3c9b Add support for configuring the xr hand tracking frequency mode 2021-12-09 12:26:06 -08:00
Luis Sanchez e00d20aa5a
Fix files_dropped in HTML5 export.
(Ignore trailing slash when creating the temporary directory)

(cherry picked from commit 40f26cb260)
2021-12-09 12:05:44 +01:00
Fredia Huya-Kouadio 65cfa28cce Add configs to specify the min and target sdk versions. 2021-12-08 09:06:09 -08:00
bruvzg 9968d0feea
[macOS] Fix crash handler not printing function names on M1 Macs.
(cherry picked from commit c8037ef2e5)
2021-12-08 10:37:49 +01:00
Fabio Alessandrelli 53ce3f64ad
[HTML5] Fix multi-touch input handling.
The code to populate the input data for WebAssembly was incorrectly
overriding values when multiple touches were present due to wrong
indexing.

(cherry picked from commit 470496d8d4)
2021-11-30 12:20:19 +01:00
bruvzg f72cc71ebe
[macOS] Fix driver crash when enabling per-pixel transparency on M1 macs. 2021-11-30 11:44:13 +02:00
Fabio Alessandrelli d205d5a5c9
[HTML5] Use absolute path for JS lib/pre/externs.
Ensure better compatibility when emcc which may run some tools from
different paths (e.g. closure compiler).

This fixes externs include issues with modern emcc using the closure
compiler.

(cherry picked from commit eaedc92c61)
2021-11-29 16:11:56 +01:00
Fabio Alessandrelli bbfe054175 [HTML5] Use compatibility function for glGetBufferSubData.
The "webgl/webgl2.h" include provides that function, but it's not
available in emscripten versions < 2.0.17 .

Since we need to support emscripten 1.39.9 (mono builds), this commit
adds a JS function in library_godot_display.js as a compatibility layer
for it, and implement glGetBufferSubData by funneling the call to that
function (so we don't have name collisions JS-side with recent emcc).

All those hacks are now moved to the platform directory instead of being
ifdefs inside the drivers implementations.
2021-11-26 15:58:04 +01:00
Fabio Alessandrelli f11bed249b
[HTML5] Fix focus (again) in Firefox's iframes.
This actually makes sense(?), when running inside an iframe the active
element might be our canvas, while the iframe itself is not active in
the parent window. Since we consume the event, the iframe does not get
focused in Firefox (but does in Chromium-based browsers), so we must
always call focus to handle such occasions.

(cherry picked from commit 63e2db2499)
2021-11-26 10:42:56 +01:00
Rémi Verschelde 451bba967a
Merge pull request #55158 from m4gr3d/add_oculus_openxr_config_3x 2021-11-22 10:29:49 +01:00
Marcel Admiraal 05744ee0e2 Fix Android `get_screen_orientation()` not returning valid values 2021-11-21 12:14:29 +00:00
Fredia Huya-Kouadio 9c50bcabed Add support for OpenXR export configurations. 2021-11-20 06:59:36 -08:00
Fabio Alessandrelli f56b1a5af5
[HTML5] Add checks to Gamepad API events.
In some conditions the events might be generated even when the `gamepad`
object is not accessible due to Security Context requirements.
This commit adds a check to avoid firing the handler in those cases.

(cherry picked from commit 91dbc288cc)
2021-11-20 11:46:13 +01:00
Fabio Alessandrelli 1066b60781
[HTML5] Fix input not focusing canvas.
mousedown and touchstart should focus the canvas to ensure correct
application lifecycle.

(cherry picked from commit f13c7fc83e)
2021-11-20 11:46:09 +01:00
Rémi Verschelde b0f721283d
Merge pull request #54089 from madmiraal/remove-unimplemented-methods-3.x 2021-11-18 15:51:15 +01:00
kobewi a58736f129
Fix data directory of unnamed projects
(cherry picked from commit f6d16d55c6)
2021-11-18 13:47:52 +01:00
Marcel Admiraal 4d3690eba5 Remove unimplemented methods 2021-11-18 12:47:36 +00:00
Rémi Verschelde 2da3f80128
Windows: Use `/bigobj` only for debug builds, breaks GCC LTO
Building `target=release` and `target=release_debug` builds with MinGW-GCC
errors when linking with LTO.

Since it's only needed for `target=debug` builds anyway (bigger objects), which
we don't build with LTO, this works around the issue.

(cherry picked from commit 64d7df1e5f)
2021-11-18 12:15:05 +01:00
Will Jordan 7e6bf27597
Fix crash on macOS (AS) when dualshock4 is removed
(cherry picked from commit 283e31a3e2)
2021-11-17 16:37:33 +01:00
Rémi Verschelde 3ac698750b
Merge pull request #54998 from akien-mga/3.x-cherrypicks 2021-11-15 18:13:56 +01:00
Rémi Verschelde 77416d5806
Merge pull request #54431 from RandomShaper/fix_gl3_32bits_3.x 2021-11-15 17:54:31 +01:00
Rémi Verschelde 26e582b170
Windows: Enable `/bigobj` to increase max size for obj files
Equivalent `-Wa,-mbig-obj` for GCC/Clang.

This started being needed to compile harfbuzz in `target=debug` with MinGW/GCC,
but there doesn't seem to be any drawback to enabling `/bigobj` (aside from
losing support for pre-VS 2005 linkers, which we don't support).

(cherry picked from commit 11d1319afd)
2021-11-15 17:22:47 +01:00
Daniel Kolesa 5fe78a3a25
Add support for PowerPC family
(cherry picked from commit 3a84a64d2f)
2021-11-15 17:22:46 +01:00
bruvzg d30b5725a3
[Export] Read and ZIP project files in 16K chunks instead of reading the whole file at once.
(cherry picked from commit c8f3dd776b)
2021-11-15 16:09:59 +01:00
Pedro J. Estébanez 4f8bc77a4c Drop broken Android 32-bit framebuffer setting 2021-11-15 10:44:41 +01:00
Hugo Locurcio fde50db399
Fix outdated SCons macOS build message
The message incorrectly stated that the minimum supported version
is 10.9, when it is in fact 10.12.
2021-11-12 23:05:54 +01:00
Rémi Verschelde 1f8497d281
Merge pull request #53411 from RandomShaper/ubershaders_3.x 2021-11-09 13:12:44 +01:00
Pedro J. Estébanez abdf931832 Add off-screen GL context 2021-11-09 12:19:12 +01:00
Rémi Verschelde 98a1e4fbd7
Merge pull request #54526 from bruvzg/opengl_mt 2021-11-09 00:10:20 +01:00
Rémi Verschelde c7c592f832
Merge pull request #54314 from nekomatata/x11-events-log-3.x 2021-11-09 00:03:39 +01:00
Pedro J. Estébanez 25f01cb09d Implement get_cache_path() for iOS, and improve it for Android and Windows 2021-11-08 22:33:54 +01:00
bruvzg f997a5f8f6 [macOS] Use pre-wait observer to keep main run loop running and redraw window during the window resize and displaying modal popups. 2021-11-08 12:34:14 +02:00
bruvzg 2e74bacf17 [iOS export] Capture and display xcodebuild output. 2021-11-07 11:06:21 +02:00
Fredia Huya-Kouadio 724ef83971 Add default `minSdkVersion` and `targetSdkVersion` in the AndroidManifest.xml file 2021-11-03 21:49:22 -07:00
bruvzg 28d7b585c9 [macOS] Enable multithreaded OpenGL engine flag when using multithreaded VisualServer. 2021-11-02 23:50:27 +02:00
Rémi Verschelde 2c47e33905
Merge pull request #54313 from nekomatata/x11-fix-input-delay-3.x 2021-11-02 08:53:06 +01:00
Rémi Verschelde bf59549f68
Merge pull request #54394 from robfram/freebsd-llvm-no-atomic-lib 2021-11-01 22:30:13 +01:00
bruvzg ed25a160ea [macOS] Always execute editor instances using NSWorkspace to ensure app window is registered and activated correctly. 2021-11-01 11:33:30 +02:00
robfram 2c8014e565 Exclude atomic lib under FreeBSD using LLVM 2021-10-29 18:24:57 +02:00
Rémi Verschelde 14ef65e49b
Merge pull request #54348 from akien-mga/3.x-clang-format-dont-align-operands 2021-10-28 15:43:15 +02:00
Rémi Verschelde 87c80f529f
clang-format: Enable `BreakBeforeTernaryOperators`
clang-format keeps breaking the way it handles break *after* ternary operators,
so I give up and go with the only style they seem to actually test.
2021-10-28 14:50:33 +02:00
Rémi Verschelde 1b65550ec7
clang-format: Various fixes to comments alignment from `clang-format` 13
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28 14:50:32 +02:00
Rémi Verschelde 42d385b312
clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 13:23:38 +02:00
Aaron Franke 18b1de1983
[3.x] Add RISC-V to "server" platform 2021-10-27 13:57:37 -05:00
PouleyKetchoupp 2a638a9cdf Add X11 events logging for debug purpose
Compiled out by default, just to be used for debugging local builds.
2021-10-27 10:37:46 -07:00
PouleyKetchoupp 874c9ae89a Fix input events random delay on X11
The new system based on a thread gathering events from the X11 server
was causing delays in some scenarios where some events have just been
missed at the time of processing and we're waiting for a whole frame to
check them again.

Solved by flushing again and checking for pending events at the
beginning of the process loop, in addition to events already gathered
on the event thread.
2021-10-27 10:19:16 -07:00
Rémi Verschelde c7f4e1d5dd
Android: Properly validate `godot_project_name_string` for Android special chars
Fixes #52659.

(cherry picked from commit 9204a3a50e)
2021-10-26 18:23:47 +02:00
Marcel Admiraal 4febf69f2a
Fix Gradle builds not excluding excluded tasks
(cherry picked from commit f80cb4dffa)
2021-10-24 01:43:44 +02:00
Rémi Verschelde f5e6a2624c
JS: Bump ansi-regex version for linter
Silences warning about a moderate security vulnerability (which doesn't affect us).

(cherry picked from commit 5f7bbc2b57)
2021-10-23 12:04:17 +02:00
Aaron Franke 5659120af3
[3.x] Add support for the RISC-V architecture
Supports RV64GC (RISC-V 64-bit with general-purpose and compressed-instruction extensions)
2021-10-22 12:51:23 -05:00
Rémi Verschelde ae5cdf3b86
Merge pull request #53991 from Faless/js/3.x_gles3_editor 2021-10-20 10:40:46 +02:00
Fabio Alessandrelli 3a61d0990e [HTML5] Editor video driver option. Replace canvas on exit.
Default is "Auto", but can be forced to a specific WebGL version if the
automatic detection fails.

The game and editor canvas are now replaced with a new one in the exit
hooks. This helps the browser do some context cleanup, and allow us to
create a new context of a different type (WebGL/WebGL2).

Enable GLES3/WebGL2 in the Web Editor.
2021-10-19 15:52:02 +02:00
Rémi Verschelde da5c843bd1
Merge pull request #53986 from madmiraal/remove-unused-variables-3.x 2021-10-19 12:18:21 +02:00
Marcel Admiraal fe9fd5c5ce Remove unused variables 2021-10-18 18:51:05 +01:00
Fabio Alessandrelli 11d1b0387e
[HTML5] Bump initial memory for Web editor
More memory is needed because the editor became bigger with the addition
of class reference translations.

(cherry picked from commit 1446cfd13d)
2021-10-18 16:09:04 +02:00
Ignacio Roldán Etchevery 24fb09614d iOS: Don't embed project static frameworks/libs
Previously, files added via `add_ios_project_static_libs` where
being added as embedded frameworks. This commit fixes that.

Static frameworks/libs should never be embedded into IPAs.
2021-10-17 22:30:09 +02:00
Rémi Verschelde 9657559b66
SCons: Set `DEBUG_ENABLED` and `DEV_ENABLED` in SConstruct
They're the same for all platforms so they don't need to be repeated in all
platform definitions.

(cherry picked from commit cd21cc683a)
2021-10-15 12:54:16 +02:00
Marcel Admiraal fd942cd465
Upgrade Android Gradle to version 7.2
(cherry picked from commit 95b1275197)
2021-10-15 12:51:43 +02:00