Commit graph

1912 commits

Author SHA1 Message Date
Haoyu Qiu
ed952f82bd Add is_zero_approx methods to Vector{2,3} 2024-04-10 19:02:42 +08:00
A Thousand Ships
0f6d2c3441
Fix building with disable_3d 2024-03-16 11:31:23 +01:00
Rémi Verschelde
1ad9e856a0
Merge pull request #88198 from lawnjelly/fix_facecount_bug
[3.x] Fix `Mesh::get_face_count()`
2024-03-08 17:54:04 +01:00
Rémi Verschelde
ae7dfd1f13
Merge pull request #85437 from lawnjelly/lod_scene_side
[3.x] Discrete Level of Detail
2024-03-08 17:53:58 +01:00
Ansraer
1e7c60174e fix crash on mat creation after orm refactor 2024-02-16 20:51:27 +01:00
lawnjelly
a32a2613e9 Fix Mesh::get_face_count()
This fixes a minor bug whereby facecount was actually returning the facecount * 3.
There were no major problems from this, but it did mean the optional threshold poly count used when merging was out by a factor of 3.
2024-02-11 12:19:52 +00:00
lawnjelly
1b5fa74e39 Discrete Level of Detail
Add scene side discrete level of detail.

New node `LOD` for UI, and `LODManager` within `World` for automatically updating child visibilities based on distance from cameras.
2024-02-10 18:54:25 +00:00
Ansraer
b9cbffd957 add ORMSpatialMaterial 2024-02-08 20:34:11 +01:00
lawnjelly
0aa22b8f13 Vertex cache optimizer
Optimizes indices to make good use of vertex cache on GPU.
2024-02-07 09:35:50 +00:00
lawnjelly
8b79135538 Add MergeGroup node to simplify merging Meshes at runtime 2024-01-31 08:28:51 +00:00
Rémi Verschelde
e653473646
Merge pull request #86725 from Mickeon/3-x-remove-unused
[3.x] Remove unused struct in GradientTexture1D
2024-01-05 11:07:44 +01:00
lawnjelly
1f4a6e43df Fix zero scale in particle shader
Fixes the lower bounding of scale when given zero input.

The previous bug was due to `sign` returning 0 with 0.0 input, rather than 1.
2023-09-19 08:30:50 +01:00
lawnjelly
8814578ceb MultiRect - Fix flushing in TextEdit
The FontDrawer used in TextEdit was previously not being flushed before drawing auto-completion boxes. This was causing rendering artifacts.
This PR also increases the backward compatibility of the MultiRect OFF mode, by forcing a flush after each character.
2023-07-15 14:02:21 +01:00
wareya
a40ecc71e6 move autotile fallback helper functions + fix comments and docs 2023-06-10 12:17:57 -04:00
wareya
73ad6517e4 make autotiles fall back to the most similar bitmask using heuristics 2023-06-09 22:27:19 -04:00
lawnjelly
6f8e632848 Make acos and asin safe
A common bug with using acos and asin is that input outside -1 to 1 range will result in Nan output. This can occur due to floating point error in the input.

The standard solution is to provide safe_acos function with clamped input. For Godot it may make more sense to make the standard functions safe.
2023-05-11 09:51:44 +01:00
lawnjelly
43b6205887 Multirect - Fix refining regions for all derived Textures
Fixes allowing all derived texture types to modify region prior to rendering.
2023-05-08 14:48:46 +01:00
Rémi Verschelde
e250950760
Merge pull request #76703 from kleonc/tilemap-nested-atlas-texture-rendering-fix
[3.x] Fix rendering tiles using nested AtlasTextures
2023-05-08 14:58:07 +02:00
kleonc
12c923cb8b Fix rendering tiles using nested AtlasTextures 2023-05-03 18:29:28 +02:00
Ninni Pipping
48347499c2 Fix size error in BitMap.opaque_to_polygons
Previous estimate of upper limit on size was incorrect
2023-04-28 19:03:49 +02:00
Rémi Verschelde
a6b01ca69d
Merge pull request #75995 from AThousandShips/3_x_autohide_theme
[3.x] Don't apply scale to autohide theme property
2023-04-17 17:25:35 +02:00
Rémi Verschelde
e3656745cc
Merge pull request #69723 from lawnjelly/surface_tool_revamp
SurfaceTool - efficiency improvements
2023-04-17 17:25:30 +02:00
Ninni Pipping
1c66257568 [3.x] Don't apply scale to autohide theme property 2023-04-12 17:45:27 +02:00
lawnjelly
910ddd13c4 Batching - Add MultiRect command
Large groups of similar rects can be processed more efficiently using the MultiRect command. Processing common to the group can be done as a one off, instead of per rect.

Adds the new API to VisualServerCanvas, and uses the new functionality from Font, BitmapFont, DynamicFont and TileMap, via the VisualServerCanvasHelper class.
2023-03-10 10:58:04 +00:00
Rémi Verschelde
48217503c5
Merge pull request #68576 from Maran23/rich-text-label-bbcode-color-tag-fix
[3.x] Fix RichTextLabel: BBCode [color] tags are not counting in font char spacing
2023-02-13 13:08:13 +01:00
Fredia Huya-Kouadio
aed400cce2
Merge pull request #71654 from m4gr3d/increase_scroll_bar_size_for_touchscreen_3x
[3.x] Update the size of the scrollbar for the editor on touchscreen devices
2023-01-31 21:52:03 -08:00
lawnjelly
5a0cb54b3a Improve error messages and classref for occluders and portals
Misused functions would previously produce no error messages which was confusing for users.
2023-01-24 14:05:48 +00:00
Fredia Huya-Kouadio
8170b7ae1e Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices 2023-01-22 07:09:48 -08:00
Rémi Verschelde
abf5f72073
Merge pull request #70717 from Calinou/particles-tweak-animation-offset-property-hint-3.x
Tweak particles animation offset property hint to allow more precise values (3.x)
2023-01-11 11:57:38 +01:00
Rémi Verschelde
1426cd3b3a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".

Backported from #70885.
2023-01-10 15:26:54 +01:00
Marius Hanl
fa304b5130 Fix RichTextLabel: BBCode [color] tags are not counting in font char spacing
Each BBCode tag is drawn individually, so we have to add the character spacing manually.
2023-01-03 07:53:19 +01:00
Hugo Locurcio
717cbbd6e7
Tweak particles animation offset property hint to allow more precise values 2022-12-29 22:17:47 +01:00
Rémi Verschelde
7a46f61089
Merge pull request #70368 from pfertyk/issue-70187-bit-map-resize-spams-errors
Fix `BitMap.resize` error spam
2022-12-22 08:56:25 +01:00
kleonc
7b196dd0ee AtlasTexture Fix calculating rects when flipping
(cherry picked from commit c3851b91db)
2022-12-21 09:34:39 +08:00
Paweł Fertyk
ddd7189b39 Fix BitMap.resize error spam
Fixes #70187.
2022-12-20 21:54:21 +01:00
FireForge
0d602ce881 Add Vector2/3 linking to more properties
- Camera2D.zoom
- CanvasLayer.scale
- ParallaxBackground.scroll_base_scale
- ParallaxLayer.motion_scale
- Polygon2D.texture_scale
- SpatialMaterial.uv1_scale
- SpatialMaterial.uv2_scale

(cherry picked from commit 92817aa72f)
2022-12-18 10:32:04 +08:00
lawnjelly
ff714fbe02 SurfaceTool - efficiency improvements
Changed to use LocalVector rather than linked lists.
2022-12-12 20:12:50 +00:00
Rémi Verschelde
5d5f0a3958
Merge pull request #69963 from lawnjelly/variant_parser_optional_readahead_3
VariantParser make readahead optional [3.x]
2022-12-12 19:02:17 +01:00
lawnjelly
776c9d0579 VariantParser make readahead optional
It turns out some areas are independently moving / reading filepointers outside of the VariantParser, which can cause the readahead caching to get out of sync.

This PR makes the VariantParser readahead to be optional to allow for these use cases.
2022-12-12 15:44:39 +00:00
Hugo Locurcio
56ac14fbf0
Use circular fade instead of linear fade for distance fade
This makes distance fade look the same regardless of the camera angle,
for all distance fade modes (Pixel Alpha, Pixel Dither, Object Dither).
Distance fade now behaves like fog in this regard.
2022-12-12 15:16:34 +01:00
bruvzg
efa6b01c97
[TextMesh, 3.x] Fix auto-translation and ignore control chars. 2022-12-04 23:11:28 +02:00
jbcolli2
dd807ca5e7
Changed normal of CylinderMesh to account for slanted side.
(cherry picked from commit 491ec622f6)
2022-11-30 15:34:26 +01:00
bruvzg
46e2e0f62e
[3.x] Improve font glyph cache packing shelf best height fit heuristic, delay font texture update, until texture is accessed. 2022-10-19 14:31:41 +03:00
Michael Alexsander
6059cf2594 Expose various color themes for Button 2022-10-12 18:19:52 -03:00
Micky
c4eb1ca969 [3.x] Remove unused struct in GradientTexture1D 2022-10-12 18:17:51 +02:00
Haoyu Qiu
456c0ecda6 Remove leading spaces from enumerator name hints 2022-10-08 15:23:46 +08:00
Waridley
199f3d99c3 Support multiline strings in buttons 2022-10-01 21:50:39 -05:00
lawnjelly
96a1b86717 Bind Physics Interpolation functions in VisualServer
To allow maximum flexibility in the initial rollout, VisualServer functions were not bound in order to prevent compatibility issues if the API changed.

These functions are now bound to allow direct use from the VisualServer.
2022-08-30 18:06:12 +01:00
Rémi Verschelde
a21221d70c
Merge pull request #64298 from Razoric480/raz/bin-cache
Fix binary resource internal cache not being filled at polling time
2022-08-29 07:04:31 +02:00
Rémi Verschelde
39ac24e278
Merge pull request #64745 from bruvzg/fix_mixed_font_color3
[3.x] Fix color modulation of the grayscale glyphs in font with mixed color / grayscale data.
2022-08-23 07:46:51 +02:00