Commit Graph

3455 Commits

Author SHA1 Message Date
kleonc 4f446c8b9e Add Image::fill_rect method 2021-11-23 17:59:08 +01:00
Camille Mohr-Daurat 3970f28f67
Merge pull request #55096 from lawnjelly/bvh_expanded_leaf
BVH - add option for expanded AABBs in leaves
2021-11-22 09:37:16 -07:00
Haoyu Qiu eb6f74855f Allow toggle TextEdit bookmark gutter 2021-11-21 21:34:30 +08:00
Brian Semrau 04846156c3
Expose Thread::get_main_id in core bindings
(cherry picked from commit c558263d84)
2021-11-20 11:48:09 +01:00
lawnjelly 211dc8cd2d BVH - add option for expanded AABBs in leaves
This PR adds a define BVH_EXPAND_LEAF_AABBS which is set, which stores expanded AABBs in the tree instead of exact AABBs.

This makes the logic less error prone when considering reciprocal collisions in the pairing, as all collision detect is now taking place between expanded AABB against expanded AABB, rather than expanded AABB against exact AABB.

The flip side of this is that the intersection tests will now be less exact when expanded margins are set.

All margins are now user customizable via project settings, and take account of collision pairing density to adjust the margin dynamically.
2021-11-20 06:45:12 +00:00
Rémi Verschelde 54490e9ebb
i18n: Sync classref translations with Weblate
(cherry picked from commit f737ed4da0)
2021-11-19 09:54:45 +01:00
kobewi 70d25bbfbb
Mention how to add margins to Button's icon
(cherry picked from commit 2341c7bbd9)
2021-11-17 15:56:23 +01:00
Rémi Verschelde 4103b0b7d8
Merge pull request #50823 from fbcosentino/3d-material-overlay 2021-11-16 08:21:18 +01:00
Fernando Cosentino cc8846bef6 Added material_overlay property to MeshInstance
Applying overlay materials into multi-surface meshes currently
requires adding a next pass material to all the surfaces, which
might be cumbersome when the material is to be applied to a range
of different geometries. This also makes it not trivial to use
AnimationPlayer to control the material in case of visual effects.
The material_override property is not an option as it works
replacing the active material for the surfaces, not adding a new pass.

This commit adds the material_overlay property to GeometryInstance
(and therefore MeshInstance), having the same reach as
material_override (that is, all surfaces) but adding a new material
pass on top of the active materials, instead of replacing them.

Implemented in rasterizer of both GLES2 and GLES3.
2021-11-15 23:50:34 +00:00
Rémi Verschelde ca61752a8c
Merge pull request #54982 from Calinou/doc-surfacetool-append-from-thread 2021-11-15 22:47:14 +01:00
Rémi Verschelde 89792e5c49
Merge pull request #54921 from lawnjelly/portals_roaming_margin 2021-11-15 22:45:46 +01:00
Rémi Verschelde 3ac2999f22
Replace Godot docs URL with `$DOCS_URL` in XML class reference 2021-11-15 17:22:47 +01:00
Rémi Verschelde 0cdcf1154f
Allow dehardcoding documentation branch and URL in docs links
This makes it possible to change the branch of the documentation that
URLs are pointing to without having to modify all class reference
files.

In the XML class reference, the `$DOCS_URL` placeholder should be used,
and will be replaced automatically in the editor and when generating
the RST class reference.

The documentation branch string is set in `version.py`.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
(cherry picked from commit 5341e6010e)
2021-11-15 17:22:47 +01:00
kobewi 7f91cbc397
Expose String.get_slice
(cherry picked from commit e5725c7deb)
2021-11-15 17:22:46 +01:00
Benjamin Armstrong 77add76a16
Clarify how 'audio/driver/output_latency' project setting works
(cherry picked from commit 1e485a7da8)
2021-11-15 16:10:00 +01:00
Rémi Verschelde 9ef3fec87f
Rect2: Clarify docs for `has_point` excluding bottom and right borders
Improve tests, as well as documentation for `expand`.

(cherry picked from commit 36c4451a7b)
2021-11-15 16:10:00 +01:00
Hugo Locurcio 194d45f11d
Improve the GIProbe and BakedLightmap class documentation
This adds information about performance and procedural generation.
2021-11-14 23:47:19 +01:00
Hugo Locurcio f39375d315
Document low performance when using `SurfaceTool.append_from()` in thread 2021-11-14 22:46:42 +01:00
lawnjelly 788f075b44 Portals - Allow user to set roaming expansion margin
Previously a crude metric was used to decide on the roaming expansion margin, but it created unexpected results in some scenarios. Instead this setting is exposed to the user via the RoomManager, allowing them to tailor it to the world size, room sizes, roaming objects sizes and the speeds of movement.
2021-11-12 15:46:04 +00:00
boruok 30d22305e1 fixed typo in NavigationPolygon doc 2021-11-11 14:29:19 +09:00
Rémi Verschelde fee83d02cc
Merge pull request #54848 from Calinou/mono-move-exception-policy-setting-3.x 2021-11-10 22:07:00 +01:00
Hugo Locurcio 4c88a82f50
Move Mono unhandled exception setting to be located within a subsection
Settings that aren't within a subsection are difficult to reach when
other settings do have a subsection.

This also adds documentation for the project setting.
2021-11-10 20:57:35 +01:00
PouleyKetchoupp 1560c8b5aa Fix test_move reporting collision when touching another body
Reporting rest collision information is needed for move_and_collide and
move_and_slide so floor detection can be done properly, but in the case
of just testing the motion for collision, it makes sense to return false
if the body is able to move all along the path without being stopped.

Updated the logic in test_move and clarified the documentation for
test_move and move_and_collide.
2021-11-10 11:07:32 -07:00
PouleyKetchoupp b93aeec4a2 Fix errors in KinematicBody when floor is destroyed or removed
In all physics servers, body_get_direct_state() now silently returns
nullptr when the body has been already freed or is removed from space,
so the client code can detect this state and invalidate the body rid.

In 2D, there is no change in behavior (just no more errors).

In 3D, the Bullet server returned a valid direct body state when the
body was removed from the physics space, but in this case it didn't
make sense to use the information from the body state.
2021-11-09 15:15:40 -07:00
Pedro J. Estébanez 4c710780d4 Implement async shader compilation plus caching for GL ES 3
Async. compilation via ubershader is currently available in the scene and particles shaders only.

Bonus:
- Use `#if defined()` syntax for not true conditionals, so they don't unnecessarily take a bit in the version flagset.
- Remove unused `ENABLE_CLIP_ALPHA` from scene shader.
- Remove unused `PARTICLES_COPY` from the particles shader.
- Remove unused uniform related code.
- Shader language/compiler: use ordered hash maps for deterministic code generation (needed for caching).
2021-11-09 12:19:12 +01:00
Rémi Verschelde 4b4e92b3d4
Merge pull request #52944 from RandomShaper/property_pin_control_natural_3.x 2021-11-08 18:53:25 +01:00
Pedro J. Estébanez 4dba25b3ff Add property value pinning 2021-11-08 17:42:27 +01:00
Rémi Verschelde ee46679ca3
Merge pull request #54577 from nekomatata/intersect-point-3d-3.x 2021-11-08 13:16:14 +01:00
Max Hilbrunner 73cb77c62c
Merge pull request #54623 from gongpha/3.x-typo1
Fix little typos in `OS` 3.x doc
2021-11-06 17:35:45 +01:00
Rémi Verschelde 965f7a6df9
Merge pull request #54607 from nekomatata/fix-intersect-shape-motion-3.x 2021-11-05 21:53:06 +01:00
Rémi Verschelde 14c366ddd7
Bump version to 3.5-beta 2021-11-05 16:10:17 +01:00
Kongfa Waroros 0d852bf5a6 Fix little typos in 3.x doc 2021-11-05 16:23:37 +07:00
Hugo Locurcio 231883bdcc
Improve description for `BitMap.grow_mask()`
(cherry picked from commit e3d23d444c)
2021-11-04 19:55:56 +01:00
PouleyKetchoupp 160346f794 Add support for motion in 2D intersect_shape function
It was only missing extended rect for broadphase check, the solver was
already taking the motion from parameters into account.
2021-11-04 11:43:30 -07:00
Gustavo Beltrão Braga 27ec7e6ed5
Change description of relative field in input drag event.
(cherry picked from commit 76c50928a1)
2021-11-04 16:35:20 +01:00
PouleyKetchoupp fc2bd63ca0 Expose intersect_point in 3D physics server
Also cleaned a few things in the documentation for 2D.
2021-11-03 16:46:40 -07:00
Rémi Verschelde 0b694eb8e7
i18n: Sync classref translations with Weblate
German (de) is now above the threshold for inclusion.
2021-11-03 15:00:52 +01:00
Yuri Sizov 5ff11a2c5c Add a flag to EditorResourcePicker to differentiate selection contexts 2021-11-02 14:15:14 +03:00
Omar El Sheikh 203295f17d Added Mesh Compression Import Options
Fleshed out the "Optimize Mesh" options found in the mesh import UI
Gave a checkbox to every vertex attribute that can be compressed

Surfaced option to enable/disable Octahedral compression for
normal/tangent vectors

Also surfaces the vertex position compression option which previously
inaccessible because the defaults did not compress vertex positions

Supports all current importers (obj, fbx, collada, gltf)
2021-11-01 12:54:28 -04:00
Yuri Sizov 7fe0dab69b Add focus font color to Button and derivatives 2021-10-26 17:40:51 +03:00
skyace65 c1709e8177
Improve area method descriptions
(cherry picked from commit 4dd8ab745a)
2021-10-26 13:34:36 +02:00
Aaron Franke 69e90daae3
Rename "makerst.py" to "make_rst.py"
(cherry picked from commits 8f05e26198
and cce7797a75)
2021-10-26 13:34:36 +02:00
Rémi Verschelde 6e141e8688
Merge pull request #54229 from akien-mga/3.x-ios-disable-high-float 2021-10-25 20:57:48 +02:00
Hugo Locurcio 059ba23f72
Document `Image.FORMAT_R8` stores in alpha channel instead in GLES2 2021-10-25 16:52:58 +02:00
Rémi Verschelde bc0d18d8d5
GLES2: Disable half float on iOS via platform override
This can be changed back by setting
`rendering/gles2/compatibility/disable_half_float.iOS` to false.

Fixes #31907.
2021-10-25 16:25:56 +02:00
Pedro J. Estébanez beb99fe54b
Expose Input::flush_buffered_events()
(cherry picked from commit 6dc3fae201)
2021-10-23 12:02:48 +02:00
SeleckyErik 98c0ffb749 Add BAKE_ERROR_NO_ROOT to BakedLightmap
Add new error type to BakeError to signalise that there is no root node to
start baking from.
Document the new error type, as well as BAKE_ERROR_NO_LIGHTMAPPER.
2021-10-21 13:32:03 +02:00
Rémi Verschelde 8425c58991
i18n: Only include editor translations above a threshold
This reduces the size of the editor binaries significantly, as we otherwise
embed all WIP translations, including ones with very low completion ratios,
and end up paying for the size of all `msgid`s for each locale.

Cf. https://github.com/godotengine/godot-proposals/issues/3421 for details.

The thresholds used are:
- 30% for the editor interface (should already include most common strings
  while more obscure ones like UndoRedo action names might be untranslated).
- 10% for the class reference: this is a HUGE resource and 10% is already
  a lot of useful content, especially if focused on the most used APIs.

For 3.x, we also exclude languages that require complex text layout support
to be displayed properly.

This currently reduces the size of the editor binary by 17% on Linux.

The list will be synced manually every now and then.
2021-10-20 14:39:21 +02:00
Rémi Verschelde 90f8cd89a7
Merge pull request #50560 from noidexe/patch-1 2021-10-18 23:01:52 +02:00
Rémi Verschelde c743649c0b
Merge pull request #53742 from DmitriySalnikov/exposed_sensor_setters 2021-10-18 23:01:07 +02:00