Browse Source

Merge pull request #63127 from KoBeWi/raise_from_picture

Rémi Verschelde 3 years ago
parent
commit
0f6028378f
2 changed files with 11 additions and 2 deletions
  1. 10 2
      doc/classes/ImageTexture.xml
  2. 1 0
      scene/resources/texture.cpp

+ 10 - 2
doc/classes/ImageTexture.xml

@@ -42,6 +42,14 @@
 				Returns the format of the texture, one of [enum Image.Format].
 				Returns the format of the texture, one of [enum Image.Format].
 			</description>
 			</description>
 		</method>
 		</method>
+		<method name="set_image">
+			<return type="void" />
+			<argument index="0" name="image" type="Image" />
+			<description>
+				Replaces the texture's data with a new [Image]. This will re-allocate new memory for the texture.
+				If you want to update the image, but don't need to change its paramters (format, size), use [method update] instead for better performance.
+			</description>
+		</method>
 		<method name="set_size_override">
 		<method name="set_size_override">
 			<return type="void" />
 			<return type="void" />
 			<argument index="0" name="size" type="Vector2i" />
 			<argument index="0" name="size" type="Vector2i" />
@@ -54,8 +62,8 @@
 			<argument index="0" name="image" type="Image" />
 			<argument index="0" name="image" type="Image" />
 			<description>
 			<description>
 				Replaces the texture's data with a new [Image].
 				Replaces the texture's data with a new [Image].
-				[b]Note:[/b] The texture has to be initialized first with the [method create_from_image] method before it can be updated. The new image dimensions, format, and mipmaps configuration should match the existing texture's image configuration, otherwise it has to be re-created with the [method create_from_image] method.
-				Use this method over [method create_from_image] if you need to update the texture frequently, which is faster than allocating additional memory for a new texture each time.
+				[b]Note:[/b] The texture has to be created using [method create_from_image] or initialized first with the [method set_image] method before it can be updated. The new image dimensions, format, and mipmaps configuration should match the existing texture's image configuration.
+				Use this method over [method set_image] if you need to update the texture frequently, which is faster than allocating additional memory for a new texture each time.
 			</description>
 			</description>
 		</method>
 		</method>
 	</methods>
 	</methods>

+ 1 - 0
scene/resources/texture.cpp

@@ -323,6 +323,7 @@ void ImageTexture::_bind_methods() {
 	ClassDB::bind_static_method("ImageTexture", D_METHOD("create_from_image", "image"), &ImageTexture::create_from_image);
 	ClassDB::bind_static_method("ImageTexture", D_METHOD("create_from_image", "image"), &ImageTexture::create_from_image);
 	ClassDB::bind_method(D_METHOD("get_format"), &ImageTexture::get_format);
 	ClassDB::bind_method(D_METHOD("get_format"), &ImageTexture::get_format);
 
 
+	ClassDB::bind_method(D_METHOD("set_image", "image"), &ImageTexture::set_image);
 	ClassDB::bind_method(D_METHOD("update", "image"), &ImageTexture::update);
 	ClassDB::bind_method(D_METHOD("update", "image"), &ImageTexture::update);
 	ClassDB::bind_method(D_METHOD("set_size_override", "size"), &ImageTexture::set_size_override);
 	ClassDB::bind_method(D_METHOD("set_size_override", "size"), &ImageTexture::set_size_override);
 }
 }