|
@@ -275,12 +275,12 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2
|
|
if (ci->clip) {
|
|
if (ci->clip) {
|
|
if (p_canvas_clip != nullptr) {
|
|
if (p_canvas_clip != nullptr) {
|
|
ci->final_clip_rect = p_canvas_clip->final_clip_rect.intersection(global_rect);
|
|
ci->final_clip_rect = p_canvas_clip->final_clip_rect.intersection(global_rect);
|
|
- if (ci->final_clip_rect == Rect2()) {
|
|
|
|
- // Clip rects do not intersect, so don't draw this item.
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
} else {
|
|
} else {
|
|
- ci->final_clip_rect = global_rect;
|
|
|
|
|
|
+ ci->final_clip_rect = p_clip_rect.intersection(global_rect);
|
|
|
|
+ }
|
|
|
|
+ if (ci->final_clip_rect.size.width < 0.5 || ci->final_clip_rect.size.height < 0.5) {
|
|
|
|
+ // The clip rect area is 0, so don't draw the item.
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
ci->final_clip_rect.position = ci->final_clip_rect.position.round();
|
|
ci->final_clip_rect.position = ci->final_clip_rect.position.round();
|
|
ci->final_clip_rect.size = ci->final_clip_rect.size.round();
|
|
ci->final_clip_rect.size = ci->final_clip_rect.size.round();
|