瀏覽代碼

Merge pull request #72086 from KoBeWi/set_rekt

Don't change region_rect when setting texture
Rémi Verschelde 2 年之前
父節點
當前提交
3b086aa062
共有 3 個文件被更改,包括 4 次插入5 次删除
  1. 1 0
      doc/classes/StyleBoxTexture.xml
  2. 3 0
      editor/plugins/texture_region_editor_plugin.cpp
  3. 0 5
      scene/resources/style_box.cpp

+ 1 - 0
doc/classes/StyleBoxTexture.xml

@@ -82,6 +82,7 @@
 		<member name="region_rect" type="Rect2" setter="set_region_rect" getter="get_region_rect" default="Rect2(0, 0, 0, 0)">
 			Species a sub-region of the texture to use.
 			This is equivalent to first wrapping the texture in an [AtlasTexture] with the same region.
+			If empty ([code]Rect2(0, 0, 0, 0)[/code]), the whole texture will be used.
 		</member>
 		<member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
 			The texture to use when drawing this style box.

+ 3 - 0
editor/plugins/texture_region_editor_plugin.cpp

@@ -740,6 +740,9 @@ void TextureRegionEditor::_update_rect() {
 		}
 	} else if (obj_styleBox.is_valid()) {
 		rect = obj_styleBox->get_region_rect();
+		if (rect == Rect2()) {
+			rect = Rect2(Vector2(), obj_styleBox->get_texture()->get_size());
+		}
 	}
 }
 

+ 0 - 5
scene/resources/style_box.cpp

@@ -151,11 +151,6 @@ void StyleBoxTexture::set_texture(Ref<Texture2D> p_texture) {
 		return;
 	}
 	texture = p_texture;
-	if (p_texture.is_null()) {
-		region_rect = Rect2(0, 0, 0, 0);
-	} else {
-		region_rect = Rect2(Point2(), texture->get_size());
-	}
 	emit_changed();
 }