diff options
| -rw-r--r-- | servers/rendering/renderer_canvas_cull.cpp | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/servers/rendering/renderer_canvas_cull.cpp b/servers/rendering/renderer_canvas_cull.cpp index 16d382a5f3..075a21b818 100644 --- a/servers/rendering/renderer_canvas_cull.cpp +++ b/servers/rendering/renderer_canvas_cull.cpp @@ -275,12 +275,12 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2  	if (ci->clip) {  		if (p_canvas_clip != nullptr) {  			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 { -			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.size = ci->final_clip_rect.size.round();  |