diff options
| author | Rémi Verschelde <remi@verschelde.fr> | 2024-02-12 23:53:51 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-12 23:53:51 +0100 |
| commit | 9050ee1542f4e071188e8e4f868f3507bb31b3dc (patch) | |
| tree | bb5788b5f23e8a76de753bc1c27de944e9644437 /servers/rendering/renderer_canvas_cull.cpp | |
| parent | e57fee996248f2b854445caee6c0c8bc0d585bec (diff) | |
| parent | 35b640107fbcae4811ab1b4011644626eee33813 (diff) | |
| download | redot-engine-9050ee1542f4e071188e8e4f868f3507bb31b3dc.tar.gz | |
Merge pull request #87297 from adamscott/2d-pixel-art-stability
Stabilize snapping 2D transforms to pixel
Diffstat (limited to 'servers/rendering/renderer_canvas_cull.cpp')
| -rw-r--r-- | servers/rendering/renderer_canvas_cull.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/servers/rendering/renderer_canvas_cull.cpp b/servers/rendering/renderer_canvas_cull.cpp index caeac5cd95..94355f2c5f 100644 --- a/servers/rendering/renderer_canvas_cull.cpp +++ b/servers/rendering/renderer_canvas_cull.cpp @@ -223,7 +223,7 @@ void RendererCanvasCull::_attach_canvas_item_for_draw(RendererCanvasCull::Item * } } -void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2D &p_transform, const Rect2 &p_clip_rect, const Color &p_modulate, int p_z, RendererCanvasRender::Item **r_z_list, RendererCanvasRender::Item **r_z_last_list, Item *p_canvas_clip, Item *p_material_owner, bool p_allow_y_sort, uint32_t p_canvas_cull_mask) { +void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2D &p_parent_xform, const Rect2 &p_clip_rect, const Color &p_modulate, int p_z, RendererCanvasRender::Item **r_z_list, RendererCanvasRender::Item **r_z_last_list, Item *p_canvas_clip, Item *p_material_owner, bool p_allow_y_sort, uint32_t p_canvas_cull_mask) { Item *ci = p_canvas_item; if (!ci->visible) { @@ -248,10 +248,14 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2 } Transform2D xform = ci->xform; + Transform2D parent_xform = p_parent_xform; + if (snapping_2d_transforms_to_pixel) { - xform.columns[2] = xform.columns[2].floor(); + xform.columns[2] = xform.columns[2].round(); + parent_xform.columns[2] = parent_xform.columns[2].round(); } - xform = p_transform * xform; + + xform = parent_xform * xform; Rect2 global_rect = xform.xform(rect); global_rect.position += p_clip_rect.position; |
