From 9d6f16e8645387cbeb3b4c3a543e6b485a822573 Mon Sep 17 00:00:00 2001 From: harrisyu Date: Thu, 20 Dec 2018 21:40:40 +0800 Subject: [PATCH] Fix #24470 Atlas Texture with margin setting cause error in editor. --- scene/resources/texture.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp index 4f4d375481b..c852f60cf3c 100644 --- a/scene/resources/texture.cpp +++ b/scene/resources/texture.cpp @@ -1087,8 +1087,12 @@ bool AtlasTexture::is_pixel_opaque(int p_x, int p_y) const { if (!atlas.is_valid()) return true; - int x = p_x + region.position.x + margin.position.x; - int y = p_y + region.position.y + margin.position.y; + int x = p_x + region.position.x - margin.position.x; + int y = p_y + region.position.y - margin.position.y; + + // margin edge may outside of atlas + if (x < 0 || x >= atlas->get_width()) return false; + if (y < 0 || y >= atlas->get_height()) return false; return atlas->is_pixel_opaque(x, y); }