.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
.. DO NOT EDIT THIS FILE, but the TextureRect.xml source instead.
.. The source is found in doc/classes or modules/<name>/doc_classes.

.. _class_TextureRect:

TextureRect
===========

**Inherits:** :ref:`Control<class_control>` **<** :ref:`CanvasItem<class_canvasitem>` **<** :ref:`Node<class_node>` **<** :ref:`Object<class_object>`

**Category:** Core

Brief Description
-----------------

Draws a sprite or a texture inside a User Interface. The texture can tile or not.

Member Functions
----------------

+--------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>`          | :ref:`get_stretch_mode<class_TextureRect_get_stretch_mode>`  **(** **)** const                               |
+--------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`Texture<class_texture>`  | :ref:`get_texture<class_TextureRect_get_texture>`  **(** **)** const                                         |
+--------------------------------+--------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>`        | :ref:`has_expand<class_TextureRect_has_expand>`  **(** **)** const                                           |
+--------------------------------+--------------------------------------------------------------------------------------------------------------+
| void                           | :ref:`set_expand<class_TextureRect_set_expand>`  **(** :ref:`bool<class_bool>` enable  **)**                 |
+--------------------------------+--------------------------------------------------------------------------------------------------------------+
| void                           | :ref:`set_stretch_mode<class_TextureRect_set_stretch_mode>`  **(** :ref:`int<class_int>` stretch_mode  **)** |
+--------------------------------+--------------------------------------------------------------------------------------------------------------+
| void                           | :ref:`set_texture<class_TextureRect_set_texture>`  **(** :ref:`Texture<class_texture>` texture  **)**        |
+--------------------------------+--------------------------------------------------------------------------------------------------------------+

Member Variables
----------------

- :ref:`bool<class_bool>` **expand** - If [code]true[/code], the texture scales to fit its bounding rectangle. Default value: [code]false[/code].
- :ref:`int<class_int>` **stretch_mode** - Controls the texture's behavior when you resize the node's bounding rectangle. Set it to one of the [code]STRETCH_*[/code] constants. See the constants to learn more.
- :ref:`Texture<class_texture>` **texture** - The node's [Texture] resource.

Numeric Constants
-----------------

- **STRETCH_SCALE_ON_EXPAND** = **0** --- Scale to fit the node's bounding rectangle, only if ``expand`` is ``true``. Default ``stretch_mode``, for backwards compatibility. Until you set ``expand`` to ``true``, the texture will behave like ``STRETCH_KEEP``.
- **STRETCH_SCALE** = **1** --- Scale to fit the node's bounding rectangle.
- **STRETCH_TILE** = **2** --- Tile inside the node's bounding rectangle.
- **STRETCH_KEEP** = **3** --- The texture keeps its original size and stays in the bounding rectangle's top-left corner.
- **STRETCH_KEEP_CENTERED** = **4** --- The texture keeps its original size and stays centered in the node's bounding rectangle.
- **STRETCH_KEEP_ASPECT** = **5** --- Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio.
- **STRETCH_KEEP_ASPECT_CENTERED** = **6** --- Scale the texture to fit the node's bounding rectangle, center it and maintain its aspect ratio.
- **STRETCH_KEEP_ASPECT_COVERED** = **7** --- Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits.

Description
-----------

Use TextureRect to draw icons and sprites in your User Interfaces. To create panels and menu boxes, take a look at NinePatchFrame. Its Stretch Mode property controls the texture's scale and placement. It can scale, tile and stay centered inside its bounding rectangle. TextureRect is one of the 5 most common nodes to create game UI.

Member Function Description
---------------------------

.. _class_TextureRect_get_stretch_mode:

- :ref:`int<class_int>`  **get_stretch_mode**  **(** **)** const

.. _class_TextureRect_get_texture:

- :ref:`Texture<class_texture>`  **get_texture**  **(** **)** const

.. _class_TextureRect_has_expand:

- :ref:`bool<class_bool>`  **has_expand**  **(** **)** const

.. _class_TextureRect_set_expand:

- void  **set_expand**  **(** :ref:`bool<class_bool>` enable  **)**

.. _class_TextureRect_set_stretch_mode:

- void  **set_stretch_mode**  **(** :ref:`int<class_int>` stretch_mode  **)**

.. _class_TextureRect_set_texture:

- void  **set_texture**  **(** :ref:`Texture<class_texture>` texture  **)**


