|
@@ -1087,8 +1087,12 @@ bool AtlasTexture::is_pixel_opaque(int p_x, int p_y) const {
|
|
if (!atlas.is_valid())
|
|
if (!atlas.is_valid())
|
|
return true;
|
|
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);
|
|
return atlas->is_pixel_opaque(x, y);
|
|
}
|
|
}
|