From cfd5fe0f29fcc06df81bfe764b072b8463aac969 Mon Sep 17 00:00:00 2001 From: clayjohn Date: Mon, 30 Jan 2023 20:59:53 -0800 Subject: Avoid crash when CanvasTexture used with light decal atlas The decal atlas is used for Light2Ds, decals, and Light3Ds --- servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp') diff --git a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp index 0f4fa1b9c4..bd8c11186e 100644 --- a/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp @@ -1550,6 +1550,9 @@ void RendererCanvasRenderRD::light_set_texture(RID p_rid, RID p_texture) { if (cl->texture == p_texture) { return; } + + ERR_FAIL_COND(p_texture.is_valid() && !texture_storage->owns_texture(p_texture)); + if (cl->texture.is_valid()) { texture_storage->texture_remove_from_decal_atlas(cl->texture); } -- cgit v1.2.3