:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/TextureRect.xml. .. _class_TextureRect: TextureRect =========== **Inherits:** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` A control that displays a texture. .. rst-class:: classref-introduction-group Description ----------- A control that displays a texture, for example an icon inside a GUI. The texture's placement can be controlled with the :ref:`stretch_mode` property. It can scale, tile, or stay centered inside its bounding rectangle. .. rst-class:: classref-introduction-group Tutorials --------- - `3D Voxel Demo `__ .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ | :ref:`ExpandMode` | :ref:`expand_mode` | ``0`` | +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ | :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:`Texture2D` | :ref:`texture` | | +--------------------------------------------------+--------------------------------------------------------------+-----------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_TextureRect_ExpandMode: .. rst-class:: classref-enumeration enum **ExpandMode**: :ref:`🔗` .. _class_TextureRect_constant_EXPAND_KEEP_SIZE: .. rst-class:: classref-enumeration-constant :ref:`ExpandMode` **EXPAND_KEEP_SIZE** = ``0`` The minimum size will be equal to texture size, i.e. **TextureRect** can't be smaller than the texture. .. _class_TextureRect_constant_EXPAND_IGNORE_SIZE: .. rst-class:: classref-enumeration-constant :ref:`ExpandMode` **EXPAND_IGNORE_SIZE** = ``1`` The size of the texture won't be considered for minimum size calculation, so the **TextureRect** can be shrunk down past the texture size. .. _class_TextureRect_constant_EXPAND_FIT_WIDTH: .. rst-class:: classref-enumeration-constant :ref:`ExpandMode` **EXPAND_FIT_WIDTH** = ``2`` The height of the texture will be ignored. Minimum width will be equal to the current height. Useful for horizontal layouts, e.g. inside :ref:`HBoxContainer`. .. _class_TextureRect_constant_EXPAND_FIT_WIDTH_PROPORTIONAL: .. rst-class:: classref-enumeration-constant :ref:`ExpandMode` **EXPAND_FIT_WIDTH_PROPORTIONAL** = ``3`` Same as :ref:`EXPAND_FIT_WIDTH`, but keeps texture's aspect ratio. .. _class_TextureRect_constant_EXPAND_FIT_HEIGHT: .. rst-class:: classref-enumeration-constant :ref:`ExpandMode` **EXPAND_FIT_HEIGHT** = ``4`` The width of the texture will be ignored. Minimum height will be equal to the current width. Useful for vertical layouts, e.g. inside :ref:`VBoxContainer`. .. _class_TextureRect_constant_EXPAND_FIT_HEIGHT_PROPORTIONAL: .. rst-class:: classref-enumeration-constant :ref:`ExpandMode` **EXPAND_FIT_HEIGHT_PROPORTIONAL** = ``5`` Same as :ref:`EXPAND_FIT_HEIGHT`, but keeps texture's aspect ratio. .. rst-class:: classref-item-separator ---- .. _enum_TextureRect_StretchMode: .. rst-class:: classref-enumeration enum **StretchMode**: :ref:`🔗` .. _class_TextureRect_constant_STRETCH_SCALE: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_SCALE** = ``0`` Scale to fit the node's bounding rectangle. .. _class_TextureRect_constant_STRETCH_TILE: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_TILE** = ``1`` Tile inside the node's bounding rectangle. .. _class_TextureRect_constant_STRETCH_KEEP: .. rst-class:: classref-enumeration-constant :ref:`StretchMode` **STRETCH_KEEP** = ``2`` 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** = ``3`` 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** = ``4`` 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** = ``5`` 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** = ``6`` 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_mode: .. rst-class:: classref-property :ref:`ExpandMode` **expand_mode** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_expand_mode**\ (\ value\: :ref:`ExpandMode`\ ) - :ref:`ExpandMode` **get_expand_mode**\ (\ ) **Experimental:** Using :ref:`EXPAND_FIT_WIDTH`, :ref:`EXPAND_FIT_WIDTH_PROPORTIONAL`, :ref:`EXPAND_FIT_HEIGHT`, or :ref:`EXPAND_FIT_HEIGHT_PROPORTIONAL` may result in unstable behavior in some :ref:`Container` controls. This behavior may be re-evaluated and changed in the future. Defines how minimum size is determined based on the texture's size. See :ref:`ExpandMode` for options. .. rst-class:: classref-item-separator ---- .. _class_TextureRect_property_flip_h: .. rst-class:: classref-property :ref:`bool` **flip_h** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_flip_h**\ (\ value\: :ref:`bool`\ ) - :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`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_flip_v**\ (\ value\: :ref:`bool`\ ) - :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`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_stretch_mode**\ (\ value\: :ref:`StretchMode`\ ) - :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:`Texture2D` **texture** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_texture**\ (\ value\: :ref:`Texture2D`\ ) - :ref:`Texture2D` **get_texture**\ (\ ) The node's :ref:`Texture2D` 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.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`