2019-10-22 02:10:35 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-05-27 22:08:19 +02:00
<class name= "TextureMerger" inherits= "Node" version= "4.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../../../doc/class.xsd" >
2019-10-22 02:10:35 +02:00
<brief_description >
2023-05-27 22:08:19 +02:00
A node that can merge textures.
2019-10-22 02:10:35 +02:00
</brief_description>
<description >
2023-05-27 22:08:19 +02:00
TextureMerger is a utility node that allows you to combine multiple [Texture] objects into a single [AtlasTexture]. It provides methods for adding, modifying, and removing textures, as well as controlling their position and cropping. Once all textures are set up, the `merge` method can be called to create the final combined texture.
2019-10-22 02:10:35 +02:00
</description>
<tutorials >
</tutorials>
<methods >
2019-12-25 14:11:34 +01:00
<method name= "_texture_added" qualifiers= "virtual" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "texture" type= "AtlasTexture" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Called when a new texture is added to the merger. Can be overridden in extended classes to implement custom behavior.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "_texture_merged" qualifiers= "virtual" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Called when the textures are merged. Can be overridden in extended classes to implement custom behavior.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "_texture_removed" qualifiers= "virtual" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Called when a texture is removed from the merger. Can be overridden in derived classes to implement custom behavior.
2019-12-25 14:11:34 +01:00
</description>
</method>
2019-10-22 02:10:35 +02:00
<method name= "add_texture" >
2022-01-12 22:21:54 +01:00
<return type= "AtlasTexture" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "texture" type= "Texture" />
2019-10-22 02:10:35 +02:00
<description >
2023-05-27 22:08:19 +02:00
Adds a new texture to the merger and returns the corresponding [AtlasTexture].
2019-10-22 02:10:35 +02:00
</description>
</method>
2019-12-25 14:11:34 +01:00
<method name= "clear" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Removes all textures from the merger.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "get_dirty" qualifiers= "const" >
2022-01-12 22:21:54 +01:00
<return type= "bool" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Returns whether the merger is marked as dirty, indicating that the merged texture needs to be updated.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "get_generated_texture" >
2022-01-12 22:21:54 +01:00
<return type= "ImageTexture" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "index" type= "int" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Returns the generated [ImageTexture] at the specified index after merging.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "get_generated_texture_count" >
2022-01-12 22:21:54 +01:00
<return type= "int" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Returns the total number of generated textures in the merger.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "get_original_texture" >
2022-01-12 22:21:54 +01:00
<return type= "Texture" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "index" type= "int" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Returns the original [Texture] object at the specified index.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "get_packer" qualifiers= "const" >
2022-01-12 22:21:54 +01:00
<return type= "TexturePacker" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Returns the [TexturePacker] instance used by the merger.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "get_texture" >
2022-01-12 22:21:54 +01:00
<return type= "AtlasTexture" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "texture" type= "Texture" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Returns the [AtlasTexture] corresponding to the given [Texture] object.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "get_texture_count" >
2022-01-12 22:21:54 +01:00
<return type= "int" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Returns the total number of textures in the merger.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "get_texture_index" >
2022-01-12 22:21:54 +01:00
<return type= "AtlasTexture" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "index" type= "int" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Returns the [AtlasTexture] at the specified index.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "merge" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Merges all textures into a single [AtlasTexture]. Call `get_generated_texture` after this method to get the merged result.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "remove_texture" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "texture" type= "Texture" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Removes the specified texture from the merger.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "remove_texture_index" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "index" type= "int" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Removes the texture at the specified index from the merger.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "set_dirty" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "value" type= "bool" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Sets the dirty flag for the merger, indicating that the merged texture needs to be updated.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "set_packer" >
2022-01-12 22:21:54 +01:00
<return type= "void" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "packer" type= "TexturePacker" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Sets the [TexturePacker] instance to be used by the merger.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "unref_texture" >
2022-01-12 22:21:54 +01:00
<return type= "bool" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "texture" type= "Texture" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Decreases the reference count of the specified texture and removes it from the merger if the reference count reaches zero. Returns true if the texture was removed.
2019-12-25 14:11:34 +01:00
</description>
</method>
<method name= "unref_texture_index" >
2022-01-12 22:21:54 +01:00
<return type= "bool" />
2023-05-27 22:08:19 +02:00
<param index= "0" name= "index" type= "int" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Decreases the reference count of the texture at the specified index and removes it from the merger if the reference count reaches zero. Returns true if the texture was removed.
2019-12-25 14:11:34 +01:00
</description>
</method>
2019-10-22 02:10:35 +02:00
</methods>
<members >
2019-12-25 14:11:34 +01:00
<member name= "automatic_merge" type= "bool" setter= "set_automatic_merge" getter= "get_automatic_merge" default= "false" >
2023-05-27 22:08:19 +02:00
If true, textures will be automatically merged when added or removed.
2019-12-25 14:11:34 +01:00
</member>
2023-05-27 22:08:19 +02:00
<member name= "background_color" type= "Color" setter= "set_background_color" getter= "get_background_color" default= "Color(0, 0, 0, 1)" >
The background color of the generated [AtlasTexture].
2019-12-25 14:11:34 +01:00
</member>
<member name= "keep_original_atlases" type= "bool" setter= "set_keep_original_atlases" getter= "get_keep_original_atlases" default= "false" >
2023-05-27 22:08:19 +02:00
If true, original atlases will be kept in memory after merging.
2019-12-25 14:11:34 +01:00
</member>
<member name= "margin" type= "int" setter= "set_margin" getter= "get_margin" default= "0" >
2023-05-27 22:08:19 +02:00
The margin between textures in the generated [AtlasTexture].
2019-12-25 14:11:34 +01:00
</member>
<member name= "max_atlas_size" type= "int" setter= "set_max_atlas_size" getter= "get_max_atlas_size" default= "1024" >
2023-05-27 22:08:19 +02:00
The maximum size of the generated [AtlasTexture].
2019-12-25 14:11:34 +01:00
</member>
2023-05-27 22:08:19 +02:00
<member name= "texture_flags" type= "int" setter= "set_texture_flags" getter= "get_texture_flags" default= "0" >
[Texture] flags to apply to the generated [AtlasTexture].
2019-10-22 02:10:35 +02:00
</member>
2023-05-27 22:08:19 +02:00
<member name= "textures" type= "Array" setter= "set_textures" getter= "get_textures" default= "[]" >
Array of textures to be merged.
2019-12-25 14:11:34 +01:00
</member>
2019-10-22 02:10:35 +02:00
</members>
2019-12-25 14:11:34 +01:00
<signals >
<signal name= "texture_added" >
2023-05-27 22:08:19 +02:00
<param index= "0" name= "texture" type= "AtlasTexture" />
2019-12-25 14:11:34 +01:00
<description >
2023-05-27 22:08:19 +02:00
Emitted when a new texture is added to the merger.
2019-12-25 14:11:34 +01:00
</description>
</signal>
<signal name= "texture_merged" >
<description >
2023-05-27 22:08:19 +02:00
Emitted when the textures are merged.
2019-12-25 14:11:34 +01:00
</description>
</signal>
<signal name= "texture_removed" >
<description >
2023-05-27 22:08:19 +02:00
Emitted when a texture is removed from the merger.
2019-12-25 14:11:34 +01:00
</description>
</signal>
</signals>
2019-10-22 02:10:35 +02:00
</class>