瀏覽代碼

RasterizerCanvas: Use getornull to fetch light occluder polygon

Fixes #21286 when the occluder is not fully configured.
Rémi Verschelde 5 年之前
父節點
當前提交
815bf761a5
共有 2 個文件被更改,包括 2 次插入2 次删除
  1. 1 1
      drivers/gles2/rasterizer_canvas_gles2.cpp
  2. 1 1
      drivers/gles3/rasterizer_canvas_gles3.cpp

+ 1 - 1
drivers/gles2/rasterizer_canvas_gles2.cpp

@@ -1894,7 +1894,7 @@ void RasterizerCanvasGLES2::canvas_light_shadow_buffer_update(RID p_buffer, cons
 
 		while (instance) {
 
-			RasterizerStorageGLES2::CanvasOccluder *cc = storage->canvas_occluder_owner.get(instance->polygon_buffer);
+			RasterizerStorageGLES2::CanvasOccluder *cc = storage->canvas_occluder_owner.getornull(instance->polygon_buffer);
 			if (!cc || cc->len == 0 || !(p_light_mask & instance->light_mask)) {
 
 				instance = instance->next;

+ 1 - 1
drivers/gles3/rasterizer_canvas_gles3.cpp

@@ -1889,7 +1889,7 @@ void RasterizerCanvasGLES3::canvas_light_shadow_buffer_update(RID p_buffer, cons
 
 		while (instance) {
 
-			RasterizerStorageGLES3::CanvasOccluder *cc = storage->canvas_occluder_owner.get(instance->polygon_buffer);
+			RasterizerStorageGLES3::CanvasOccluder *cc = storage->canvas_occluder_owner.getornull(instance->polygon_buffer);
 			if (!cc || cc->len == 0 || !(p_light_mask & instance->light_mask)) {
 
 				instance = instance->next;