Commit Graph

1915 Commits

Author SHA1 Message Date
66d1ab0459 [3.x] Fix AtlasTexture::draw_rect flipping for non-zero margin 2024-07-02 11:26:23 +02:00
da3c95f325 Mesh merging - refactor to be backward compatible for CPU / GPU storage
Allows the old `merge_meshes()` function to work from the editor.
2024-05-19 07:44:36 +01:00
bdf0f78e07 Editor 3D view mesh stats
Similar to information window, add a small optional window to display face count and other stats.
2024-04-21 08:20:18 +01:00
ed952f82bd Add is_zero_approx methods to Vector{2,3} 2024-04-10 19:02:42 +08:00
0f6d2c3441 Fix building with disable_3d 2024-03-16 11:31:23 +01:00
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
ae7dfd1f13 Merge pull request #85437 from lawnjelly/lod_scene_side
[3.x] Discrete Level of Detail
2024-03-08 17:53:58 +01:00
1e7c60174e fix crash on mat creation after orm refactor 2024-02-16 20:51:27 +01:00
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
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
b9cbffd957 add ORMSpatialMaterial 2024-02-08 20:34:11 +01:00
0aa22b8f13 Vertex cache optimizer
Optimizes indices to make good use of vertex cache on GPU.
2024-02-07 09:35:50 +00:00
8b79135538 Add MergeGroup node to simplify merging Meshes at runtime 2024-01-31 08:28:51 +00:00
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
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
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
a40ecc71e6 move autotile fallback helper functions + fix comments and docs 2023-06-10 12:17:57 -04:00
73ad6517e4 make autotiles fall back to the most similar bitmask using heuristics 2023-06-09 22:27:19 -04:00
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
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
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
12c923cb8b Fix rendering tiles using nested AtlasTextures 2023-05-03 18:29:28 +02:00
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
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
e3656745cc Merge pull request #69723 from lawnjelly/surface_tool_revamp
SurfaceTool - efficiency improvements
2023-04-17 17:25:30 +02:00
1c66257568 [3.x] Don't apply scale to autohide theme property 2023-04-12 17:45:27 +02:00
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
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
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
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
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
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
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
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
717cbbd6e7 Tweak particles animation offset property hint to allow more precise values 2022-12-29 22:17:47 +01:00
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
7b196dd0ee AtlasTexture Fix calculating rects when flipping
(cherry picked from commit c3851b91db)
2022-12-21 09:34:39 +08:00
ddd7189b39 Fix BitMap.resize error spam
Fixes #70187.
2022-12-20 21:54:21 +01:00
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
ff714fbe02 SurfaceTool - efficiency improvements
Changed to use LocalVector rather than linked lists.
2022-12-12 20:12:50 +00:00
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
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
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
efa6b01c97 [TextMesh, 3.x] Fix auto-translation and ignore control chars. 2022-12-04 23:11:28 +02:00
dd807ca5e7 Changed normal of CylinderMesh to account for slanted side.
(cherry picked from commit 491ec622f6)
2022-11-30 15:34:26 +01:00
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
6059cf2594 Expose various color themes for Button 2022-10-12 18:19:52 -03:00
c4eb1ca969 [3.x] Remove unused struct in GradientTexture1D 2022-10-12 18:17:51 +02:00
456c0ecda6 Remove leading spaces from enumerator name hints 2022-10-08 15:23:46 +08:00
199f3d99c3 Support multiline strings in buttons 2022-10-01 21:50:39 -05:00