Commit Graph

29245 Commits

Author SHA1 Message Date
Fabio Alessandrelli 758daab3ad [HTML5] Respect allow_hidpi option during setup
The option was forced to `true` before, unlike on other platforms.
2021-03-08 23:35:10 +01:00
Rémi Verschelde fd5966af64
Merge pull request #46797 from Faless/js/3.x_pwa_simple
[3.2][HTML5] Add PWA support to the editor page.
2021-03-08 17:29:57 +01:00
Fabio Alessandrelli d942d553ef [HTML5] Add PWA support to the editor page.
This allows to install it as an app, and provide offline support (after
the first run).
Practically, this boils down to adding a JSON file as a manifest, an
offline page to be displayed when the cached files are not avaialble,
and a JS file to cache resources and return them.

The reason for the "first run requirements" is that some browsers, will
emit an "install" by just visiting the page (to see if the JS code is
compatibile), and we do not want to force casual visitors to just
download the 10 MiB+ compressed editor WebAssembly file without pressing
the start button.

Special thanks to Hugo Locurcio (Calinou) for the initial work.
2021-03-08 17:06:41 +01:00
Fabio Alessandrelli 9028b7a095 [HTML5] Catch audio worklet errors on disconnect.
Which could happen if the worklet was not fully loaded, or the audio
context had already aborted.
2021-03-08 17:06:41 +01:00
Rémi Verschelde 9c30f70f64
Merge pull request #46794 from akien-mga/3.2-linux-fix-detect_prime-steam
[3.2] Linux: Fix PRIME detection on Steam
2021-03-08 16:30:09 +01:00
Rémi Verschelde 0e0d73c011
Merge pull request #46694 from JFonS/fix_directional_disabling
[3.2] Various light culling fixes
2021-03-08 16:17:43 +01:00
Rémi Verschelde 03dda90ddd Linux: Fix PRIME detection on Steam
To avoid trying to do PRIME detection on fake `libGL.so` as used by e.g.
Renderdoc or Primus, we skip detection if there's a `libGL.so` in
`LD_LIBRARY_PATH`... and our luck is that Steam defines it and includes
system paths too, thus the actual system `libGL`... 🤦

So if we detect Steam, we skip this check.

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>

(cherry picked from commit 562b1cd2cda2098e62c7501dae87393def99c23a)
2021-03-08 16:03:24 +01:00
JFonS f24f582ba5 Various light culling fixes
GLES3 changes:
This commit makes it possible to disable 3D directional lights by using
the light's cull mask. It also automatically disables directionals when
the object has baked lighting and the light is set to "bake all".

GLES2 changes:
Added a check for the light cull mask, since it was previously ignored.
2021-03-08 15:10:55 +01:00
Rémi Verschelde 118567ca28
Merge pull request #46657 from lawnjelly/revert_snapping
Revert backport of 2D transform and camera snapping options
2021-03-08 14:49:41 +01:00
Rémi Verschelde 3fafaf2cf2
Merge pull request #46717 from lawnjelly/camera_process
Improve process logic in Camera2D
2021-03-08 14:42:08 +01:00
lawnjelly 8763d891fe Improve process logic in Camera2D
The logic for internal process and internal physics process in Camera2D was very buggy and convoluted for historical reasons.

This is a cleanup to make the logic simpler and easier to follow.
2021-03-08 13:29:19 +00:00
Rémi Verschelde 6b48fce2b5 SCons: Fix parsing PATH when constructing base environment
We constructed the SCons environment without taking any (shell) environment
variables into account, and then appended a few, but too late. This would
cause variables like `env[CXX]` not to be properly expanded to respect a
non-standard `PATH`.

With this fix, setting:
```
PATH=$GODOT_SDK/bin:$PATH
```
will now properly use `$GODOT_SDK/bin/gcc` if available over `/usr/bin/gcc`.

(cherry picked from commit 5d217a9441)
2021-03-07 22:51:33 +01:00
Pedro J. Estébanez 8be3995efa Fix crash on cleanup of EditorFileServer
(cherry picked from commit 565796518d)
2021-03-07 22:51:06 +01:00
Rémi Verschelde 2e9c6a5129 Link to Godot Contributors Chat instead of IRC
(cherry picked from commit 848f3bba7c)
2021-03-07 22:51:06 +01:00
kobewi bc56681b0b Don't save unchanged script upon closing
(cherry picked from commit 12f5a5a701)
2021-03-07 22:51:06 +01:00
Duddino aabb8d78ef Added some checks to prevent accessing a null collider
Previously godot would try to access
`CollisionObjectBullet::bt_collision_object` even if it was null.
Fixes #46651

(cherry picked from commit c47070e165)
2021-03-07 22:51:06 +01:00
kobewi 749892c9fc Release mouse when SpinBox leaves scene tree
(cherry picked from commit 83f6c6b360)
2021-03-07 22:51:06 +01:00
Rémi Verschelde 81fd486c92
Merge pull request #46770 from aaronfranke/3.2-sign-doc
[3.2] Fix documentation for Vector2/3.sign()
2021-03-07 21:48:14 +01:00
Aaron Franke a320d28f53
[3.2] Fix documentation for Vector2/3.sign() 2021-03-07 15:34:57 -05:00
Rémi Verschelde eca079c198
Merge pull request #46763 from Calinou/interepolatedcamera-remove-deprecation-warning
Remove deprecation warning messages from InterpolatedCamera
2021-03-07 16:39:40 +01:00
Hugo Locurcio ac6251d8b2
Remove deprecation warning messages from InterpolatedCamera
Since Godot 4.0's relea	se is still a while away, warning users
every time the project starts might be a bit too dramatic.
2021-03-07 15:56:41 +01:00
Rémi Verschelde 3d5f964a49
Merge pull request #46755 from Calinou/tweak-shader-error-gles3-only
Tweak shader errors for features only usable in GLES3
2021-03-07 13:41:03 +01:00
Hugo Locurcio 0c6873b13e
Tweak shader errors for features only usable in GLES3
See https://github.com/godotengine/godot/issues/42719#issuecomment-792168504.
2021-03-07 13:27:13 +01:00
Rémi Verschelde 2390b98775
Merge pull request #46749 from bruvzg/thread_id_fix_3
[3.2] Improve thread IDs to avoid collisions with threads not created by the Godot API.
2021-03-07 10:07:58 +01:00
bruvzg ce11f7fa3e
[3.2] Improve thread IDs to avoid collisions with threads not created by the Godot API. 2021-03-07 10:09:02 +02:00
Rémi Verschelde 82fcd3a7b8
Merge pull request #46731 from Faless/js/3.x_fetch_world
[3.2][HTML5] Replace XMLHttpRequest(s) with Fetch.
2021-03-06 16:15:39 +01:00
Fabio Alessandrelli c01f35de12 [HTML5] Replace XMLHttpRequest with Fetch.
This has some advantages:
- Streaming/chunked response support.
- Broader headers support.
2021-03-06 11:44:43 +01:00
Rémi Verschelde f477d3ca98
Merge pull request #46711 from akien-mga/3.2-mono-c++14-compat
Mono: Don't use C++17 [[maybe_unused]] to preserve C++14 compatibility
2021-03-06 09:35:49 +01:00
Rémi Verschelde fcc36d9731
Merge pull request #46707 from Calinou/doc-object-get-property-list-tutorial
Link to advanced exports tutorial in the Object class documentation
2021-03-06 00:05:16 +01:00
Rémi Verschelde 558d524bcb Mono: Don't use C++17 [[maybe_unused]] to preserve C++14 compatibility
The 3.2 branch compiles against the C++14 standard to keep good compatibility
with somewhat older compilers.

Fixes #45839.
2021-03-05 23:28:09 +01:00
Johannes 36bec6677e Move cursor shape loading after module loading
fixes #46685

(cherry picked from commit 2ac9f37b17)
2021-03-05 22:45:49 +01:00
PouleyKetchoupp 17bb7c6735 Fix errors with invalid CollisionPolygon2D
Fixed internal errors when the shape is invalid and made warnings more
descriptive.

(cherry picked from commit 2217e477b9)
2021-03-05 22:45:29 +01:00
PouleyKetchoupp 6c0002afb5 Fix errors and crash with empty ConvexPolygonShape2D
(cherry picked from commit 6fb6090748)
2021-03-05 22:45:29 +01:00
Hugo Locurcio 48d5080e6a
Link to advanced exports tutorial in the Object class documentation 2021-03-05 22:44:41 +01:00
Rémi Verschelde b993febf28
Merge pull request #46697 from lawnjelly/camera_2d_delay_logic
Fix Camera2D frame delay
2021-03-05 20:09:43 +01:00
Fabio Alessandrelli 751a6f9a63 [HTML5] Rename heapCopy to heapSlice.
New heapCopy function copies a TypedArray to the heap.
2021-03-05 17:32:17 +01:00
Fabio Alessandrelli 41c64533b0 [HTML5] Export process writes sizes in template.
This allow the loading bar to be much more reliable, even in cases where
realible stream loading status is not detectable (server-side
compression, chunked encoding).
2021-03-05 17:32:17 +01:00
Fabio Alessandrelli f64ec5f1ad [HTML5] Preloader fetch, streaming instantiation. 2021-03-05 17:32:17 +01:00
lawnjelly 136f94fa24 Fix Camera2D frame delay
Fixes camera frame delay by always doing a scroll update except when smoothing is active.
2021-03-05 15:46:26 +00:00
lawnjelly bf1de6bbfa Revert backport of 2D transform and camera snapping options
More work is needed to make sure that those options actually solve users' issues, so we prefer to remove the options for 3.2.4 and revisit for a future release.
2021-03-05 14:20:31 +00:00
Rémi Verschelde 8a020a6573
Merge pull request #46662 from Calinou/doc-bakedlightmap-hdr
Improve the BakedLightmap `use_hdr` documentation
2021-03-05 15:14:33 +01:00
Rémi Verschelde ff6cf26286
Merge pull request #46664 from Calinou/doc-margincontainer-theme-constant-3.2
Use safer `add_theme_constant_override()` in MarginContainer code sample
2021-03-05 15:12:03 +01:00
Rémi Verschelde f2ad10f957
Merge pull request #46666 from Pop0p/3.2_bug_get_joy_button_index_from_string
Fix a crash when using Input.get_joy_button_index_from_string()
2021-03-05 12:08:43 +01:00
Pop0p 07fc567d03 Fix a crash when using Input.get_joy_button_index_from_string()
There was a missing comma between two elements in the _buttons array
2021-03-05 11:17:18 +01:00
Rémi Verschelde d70258707d
Merge pull request #46676 from lawnjelly/ewok_modulate_shader
Batching - fix custom MODULATE shader applying modulate twice
2021-03-05 10:44:49 +01:00
Rémi Verschelde cad3771ce7
Merge pull request #46623 from Janglee123/tilemap-collision-show
Added `show_collision` property for tilemap node.
2021-03-04 23:40:17 +01:00
lawnjelly c401960634 Batching - fix custom MODULATE shader applying modulate twice
One of the new fvf types (FVF_MODULATED) allows batching custom shaders that use modulate. The only slight oversight is that there is a special define when MODULATE is used in a custom shader, called MODULATE_USED, that is checked, and if set it does NOT apply final_modulate as part of canvas.glsl.

This MODULATE_USED define wasn't checked when the new FVF was used and modulate was passed in an attribute.

This PR moves the application of the final_modulate into the #ifndef MODULATE_USED section.
2021-03-04 20:28:57 +00:00
janglee 7b6cc3e687 Added `show_collision` property.
If true, collision shapes are shown in the editor and at run-time.
Requires Visible Collision Shapes to be enabled in the Debug menu,
for collision shapes to be visible at run-time.
2021-03-05 01:21:40 +05:30
Hugo Locurcio e90f08642d
Use safer `add_theme_constant_override()` in MarginContainer code sample
Control has magic setters to set custom theme items, but using the
dedicated Control methods is less prone to typos so it should be favored.
2021-03-04 17:18:51 +01:00
Hugo Locurcio f3496529dd
Improve the BakedLightmap `use_hdr` documentation
See https://github.com/godotengine/godot/issues/46442.
2021-03-04 17:10:29 +01:00