<?xml version="1.0" encoding="UTF-8" ?>
<class name="MeshInstance2D" inherits="Node2D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Node used for displaying a [Mesh] in 2D.
	</brief_description>
	<description>
		Node used for displaying a [Mesh] in 2D. This can be faster to render compared to displaying a [Sprite2D] node with large transparent areas, especially if the node takes up a lot of space on screen at high viewport resolutions. This is because using a mesh designed to fit the sprite's opaque areas will reduce GPU fill rate utilization (at the cost of increased vertex processing utilization).
		When a [Mesh] has to be instantiated more than thousands of times close to each other, consider using a [MultiMesh] in a [MultiMeshInstance2D] instead.
		A [MeshInstance2D] can be created from an existing [Sprite2D] via a tool in the editor toolbar. Select the [Sprite2D] node, then choose [b]Sprite2D &gt; Convert to MeshInstance2D[/b] at the top of the 2D editor viewport.
	</description>
	<tutorials>
		<link title="2D meshes">$DOCS_URL/tutorials/2d/2d_meshes.html</link>
	</tutorials>
	<members>
		<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
			The [Mesh] that will be drawn by the [MeshInstance2D].
		</member>
		<member name="texture" type="Texture2D" setter="set_texture" getter="get_texture">
			The [Texture2D] that will be used if using the default [CanvasItemMaterial]. Can be accessed as [code]TEXTURE[/code] in CanvasItem shader.
		</member>
	</members>
	<signals>
		<signal name="texture_changed">
			<description>
				Emitted when the [member texture] is changed.
			</description>
		</signal>
	</signals>
</class>
