:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/TextureRect.xml. .. _class_TextureRect: TextureRect =========== **Inherits:** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` Control for drawing textures. .. rst-class:: classref-introduction-group Description ----------- Used to draw icons and sprites in a user interface. The texture's placement can be controlled with the :ref:`stretch_mode` property. It can scale, tile, or stay centered inside its bounding rectangle. \ **Note:** You should enable :ref:`flip_v` when using a TextureRect to display a :ref:`ViewportTexture`. Alternatively, you can enable :ref:`Viewport.render_target_v_flip` on the Viewport. Otherwise, the image will appear upside down. .. rst-class:: classref-introduction-group Tutorials --------- - `3D Voxel Demo `__ .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ | :ref:`bool` | :ref:`expand` | ``false`` | +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ | :ref:`bool` | :ref:`flip_h` | ``false`` | +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ | :ref:`bool` | :ref:`flip_v` | ``false`` | +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ | :ref:`MouseFilter` | mouse_filter | ``1`` (overrides :ref:`Control`) | +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ | :ref:`StretchMode` | :ref:`stretch_mode` | ``0`` | +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ | :ref:`Texture` | :ref:`texture` | | +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_TextureRect_StretchMode: .. rst-class:: classref-enumeration enum **StretchMode**: .. _class_TextureRect_constant_STRETCH_SCALE_ON_EXPAND: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **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 :ref:`STRETCH_KEEP`. .. _class_TextureRect_constant_STRETCH_SCALE: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_SCALE** = ``1`` Scale to fit the node's bounding rectangle. .. _class_TextureRect_constant_STRETCH_TILE: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_TILE** = ``2`` Tile inside the node's bounding rectangle. .. _class_TextureRect_constant_STRETCH_KEEP: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_KEEP** = ``3`` The texture keeps its original size and stays in the bounding rectangle's top-left corner. .. _class_TextureRect_constant_STRETCH_KEEP_CENTERED: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_KEEP_CENTERED** = ``4`` The texture keeps its original size and stays centered in the node's bounding rectangle. .. _class_TextureRect_constant_STRETCH_KEEP_ASPECT: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_KEEP_ASPECT** = ``5`` Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio. .. _class_TextureRect_constant_STRETCH_KEEP_ASPECT_CENTERED: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_KEEP_ASPECT_CENTERED** = ``6`` Scale the texture to fit the node's bounding rectangle, center it and maintain its aspect ratio. .. _class_TextureRect_constant_STRETCH_KEEP_ASPECT_COVERED: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **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. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_TextureRect_property_expand: .. rst-class:: classref-property :ref:`bool` **expand** = ``false`` .. rst-class:: classref-property-setget - void **set_expand** **(** :ref:`bool` value **)** - :ref:`bool` **has_expand** **(** **)** If ``true``, the texture scales to fit its bounding rectangle. .. rst-class:: classref-item-separator ---- .. _class_TextureRect_property_flip_h: .. rst-class:: classref-property :ref:`bool` **flip_h** = ``false`` .. rst-class:: classref-property-setget - void **set_flip_h** **(** :ref:`bool` value **)** - :ref:`bool` **is_flipped_h** **(** **)** If ``true``, texture is flipped horizontally. .. rst-class:: classref-item-separator ---- .. _class_TextureRect_property_flip_v: .. rst-class:: classref-property :ref:`bool` **flip_v** = ``false`` .. rst-class:: classref-property-setget - void **set_flip_v** **(** :ref:`bool` value **)** - :ref:`bool` **is_flipped_v** **(** **)** If ``true``, texture is flipped vertically. .. rst-class:: classref-item-separator ---- .. _class_TextureRect_property_stretch_mode: .. rst-class:: classref-property :ref:`StretchMode` **stretch_mode** = ``0`` .. rst-class:: classref-property-setget - void **set_stretch_mode** **(** :ref:`StretchMode` value **)** - :ref:`StretchMode` **get_stretch_mode** **(** **)** Controls the texture's behavior when resizing the node's bounding rectangle. See :ref:`StretchMode`. .. rst-class:: classref-item-separator ---- .. _class_TextureRect_property_texture: .. rst-class:: classref-property :ref:`Texture` **texture** .. rst-class:: classref-property-setget - void **set_texture** **(** :ref:`Texture` value **)** - :ref:`Texture` **get_texture** **(** **)** The node's :ref:`Texture` resource. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`