Quellcode durchsuchen

Merge pull request #46163 from lawnjelly/ewok_fix_lightmasking

Batching - prevent joining of lightmasked items
Rémi Verschelde vor 4 Jahren
Ursprung
Commit
386402e05c

+ 6 - 1
drivers/gles2/rasterizer_canvas_gles2.cpp

@@ -1277,7 +1277,12 @@ bool RasterizerCanvasGLES2::try_join_item(Item *p_ci, RenderItemState &r_ris, bo
 	r_batch_break = false;
 	r_batch_break = false;
 	bool join = true;
 	bool join = true;
 
 
-	// light_masked may possibly need state checking here. Check for regressions!
+	// light_masked objects we just don't currently support for joining
+	// (this could possibly be improved at a later date)
+	if (p_ci->light_masked) {
+		join = false;
+		r_batch_break = true;
+	}
 
 
 	// we will now allow joining even if final modulate is different
 	// we will now allow joining even if final modulate is different
 	// we will instead bake the final modulate into the vertex colors
 	// we will instead bake the final modulate into the vertex colors

+ 6 - 1
drivers/gles3/rasterizer_canvas_gles3.cpp

@@ -1678,7 +1678,12 @@ bool RasterizerCanvasGLES3::try_join_item(Item *p_ci, RenderItemState &r_ris, bo
 	r_batch_break = false;
 	r_batch_break = false;
 	bool join = true;
 	bool join = true;
 
 
-	// light_masked may possibly need state checking here. Check for regressions!
+	// light_masked objects we just don't currently support for joining
+	// (this could possibly be improved at a later date)
+	if (p_ci->light_masked) {
+		join = false;
+		r_batch_break = true;
+	}
 
 
 	// we will now allow joining even if final modulate is different
 	// we will now allow joining even if final modulate is different
 	// we will instead bake the final modulate into the vertex colors
 	// we will instead bake the final modulate into the vertex colors