class_texture.rst 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the Texture.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_Texture:
  6. Texture
  7. =======
  8. **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
  9. **Inherited By:** :ref:`AnimatedTexture<class_AnimatedTexture>`, :ref:`AtlasTexture<class_AtlasTexture>`, :ref:`CameraTexture<class_CameraTexture>`, :ref:`CurveTexture<class_CurveTexture>`, :ref:`ExternalTexture<class_ExternalTexture>`, :ref:`GradientTexture<class_GradientTexture>`, :ref:`ImageTexture<class_ImageTexture>`, :ref:`LargeTexture<class_LargeTexture>`, :ref:`MeshTexture<class_MeshTexture>`, :ref:`NoiseTexture<class_NoiseTexture>`, :ref:`ProxyTexture<class_ProxyTexture>`, :ref:`StreamTexture<class_StreamTexture>`, :ref:`ViewportTexture<class_ViewportTexture>`
  10. Texture for 2D and 3D.
  11. Description
  12. -----------
  13. A texture works by registering an image in the video hardware, which then can be used in 3D models or 2D :ref:`Sprite<class_Sprite>` or GUI :ref:`Control<class_Control>`.
  14. Textures are often created by loading them from a file. See :ref:`@GDScript.load<class_@GDScript_method_load>`.
  15. ``Texture`` is a base for other resources. It cannot be used directly.
  16. **Note:** The maximum texture size is 16384×16384 pixels due to graphics hardware limitations. Larger textures may fail to import.
  17. Properties
  18. ----------
  19. +-----------------------+--------------------------------------------+-------+
  20. | :ref:`int<class_int>` | :ref:`flags<class_Texture_property_flags>` | ``4`` |
  21. +-----------------------+--------------------------------------------+-------+
  22. Methods
  23. -------
  24. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | void | :ref:`draw<class_Texture_method_draw>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` position, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`bool<class_bool>` transpose=false, :ref:`Texture<class_Texture>` normal_map=null **)** |const| |
  26. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  27. | void | :ref:`draw_rect<class_Texture_method_draw_rect>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Rect2<class_Rect2>` rect, :ref:`bool<class_bool>` tile, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`bool<class_bool>` transpose=false, :ref:`Texture<class_Texture>` normal_map=null **)** |const| |
  28. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  29. | void | :ref:`draw_rect_region<class_Texture_method_draw_rect_region>` **(** :ref:`RID<class_RID>` canvas_item, :ref:`Rect2<class_Rect2>` rect, :ref:`Rect2<class_Rect2>` src_rect, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`bool<class_bool>` transpose=false, :ref:`Texture<class_Texture>` normal_map=null, :ref:`bool<class_bool>` clip_uv=true **)** |const| |
  30. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  31. | :ref:`Image<class_Image>` | :ref:`get_data<class_Texture_method_get_data>` **(** **)** |const| |
  32. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. | :ref:`int<class_int>` | :ref:`get_height<class_Texture_method_get_height>` **(** **)** |const| |
  34. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. | :ref:`Vector2<class_Vector2>` | :ref:`get_size<class_Texture_method_get_size>` **(** **)** |const| |
  36. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | :ref:`int<class_int>` | :ref:`get_width<class_Texture_method_get_width>` **(** **)** |const| |
  38. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`bool<class_bool>` | :ref:`has_alpha<class_Texture_method_has_alpha>` **(** **)** |const| |
  40. +-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. Enumerations
  42. ------------
  43. .. _enum_Texture_Flags:
  44. .. _class_Texture_constant_FLAGS_DEFAULT:
  45. .. _class_Texture_constant_FLAG_MIPMAPS:
  46. .. _class_Texture_constant_FLAG_REPEAT:
  47. .. _class_Texture_constant_FLAG_FILTER:
  48. .. _class_Texture_constant_FLAG_ANISOTROPIC_FILTER:
  49. .. _class_Texture_constant_FLAG_CONVERT_TO_LINEAR:
  50. .. _class_Texture_constant_FLAG_MIRRORED_REPEAT:
  51. .. _class_Texture_constant_FLAG_VIDEO_SURFACE:
  52. enum **Flags**:
  53. - **FLAGS_DEFAULT** = **7** --- Default flags. :ref:`FLAG_MIPMAPS<class_Texture_constant_FLAG_MIPMAPS>`, :ref:`FLAG_REPEAT<class_Texture_constant_FLAG_REPEAT>` and :ref:`FLAG_FILTER<class_Texture_constant_FLAG_FILTER>` are enabled.
  54. - **FLAG_MIPMAPS** = **1** --- Generates mipmaps, which are smaller versions of the same texture to use when zoomed out, keeping the aspect ratio.
  55. - **FLAG_REPEAT** = **2** --- Repeats the texture (instead of clamp to edge).
  56. **Note:** Ignored when using an :ref:`AtlasTexture<class_AtlasTexture>` as these don't support repetition.
  57. - **FLAG_FILTER** = **4** --- Uses a magnifying filter, to enable smooth zooming in of the texture.
  58. - **FLAG_ANISOTROPIC_FILTER** = **8** --- Uses anisotropic mipmap filtering. Generates smaller versions of the same texture with different aspect ratios.
  59. This results in better-looking textures when viewed from oblique angles.
  60. - **FLAG_CONVERT_TO_LINEAR** = **16** --- Converts the texture to the sRGB color space.
  61. - **FLAG_MIRRORED_REPEAT** = **32** --- Repeats the texture with alternate sections mirrored.
  62. **Note:** Ignored when using an :ref:`AtlasTexture<class_AtlasTexture>` as these don't support repetition.
  63. - **FLAG_VIDEO_SURFACE** = **2048** --- Texture is a video surface.
  64. Property Descriptions
  65. ---------------------
  66. .. _class_Texture_property_flags:
  67. - :ref:`int<class_int>` **flags**
  68. +-----------+------------------+
  69. | *Default* | ``4`` |
  70. +-----------+------------------+
  71. | *Setter* | set_flags(value) |
  72. +-----------+------------------+
  73. | *Getter* | get_flags() |
  74. +-----------+------------------+
  75. The texture's :ref:`Flags<enum_Texture_Flags>`. :ref:`Flags<enum_Texture_Flags>` are used to set various properties of the ``Texture``.
  76. Method Descriptions
  77. -------------------
  78. .. _class_Texture_method_draw:
  79. - void **draw** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Vector2<class_Vector2>` position, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`bool<class_bool>` transpose=false, :ref:`Texture<class_Texture>` normal_map=null **)** |const|
  80. Draws the texture using a :ref:`CanvasItem<class_CanvasItem>` with the :ref:`VisualServer<class_VisualServer>` API at the specified ``position``. Equivalent to :ref:`VisualServer.canvas_item_add_texture_rect<class_VisualServer_method_canvas_item_add_texture_rect>` with a rect at ``position`` and the size of this ``Texture``.
  81. ----
  82. .. _class_Texture_method_draw_rect:
  83. - void **draw_rect** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Rect2<class_Rect2>` rect, :ref:`bool<class_bool>` tile, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`bool<class_bool>` transpose=false, :ref:`Texture<class_Texture>` normal_map=null **)** |const|
  84. Draws the texture using a :ref:`CanvasItem<class_CanvasItem>` with the :ref:`VisualServer<class_VisualServer>` API. Equivalent to :ref:`VisualServer.canvas_item_add_texture_rect<class_VisualServer_method_canvas_item_add_texture_rect>`.
  85. ----
  86. .. _class_Texture_method_draw_rect_region:
  87. - void **draw_rect_region** **(** :ref:`RID<class_RID>` canvas_item, :ref:`Rect2<class_Rect2>` rect, :ref:`Rect2<class_Rect2>` src_rect, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`bool<class_bool>` transpose=false, :ref:`Texture<class_Texture>` normal_map=null, :ref:`bool<class_bool>` clip_uv=true **)** |const|
  88. Draws a part of the texture using a :ref:`CanvasItem<class_CanvasItem>` with the :ref:`VisualServer<class_VisualServer>` API. Equivalent to :ref:`VisualServer.canvas_item_add_texture_rect_region<class_VisualServer_method_canvas_item_add_texture_rect_region>`.
  89. ----
  90. .. _class_Texture_method_get_data:
  91. - :ref:`Image<class_Image>` **get_data** **(** **)** |const|
  92. Returns an :ref:`Image<class_Image>` that is a copy of data from this ``Texture``. :ref:`Image<class_Image>`\ s can be accessed and manipulated directly.
  93. ----
  94. .. _class_Texture_method_get_height:
  95. - :ref:`int<class_int>` **get_height** **(** **)** |const|
  96. Returns the texture height.
  97. ----
  98. .. _class_Texture_method_get_size:
  99. - :ref:`Vector2<class_Vector2>` **get_size** **(** **)** |const|
  100. Returns the texture size.
  101. ----
  102. .. _class_Texture_method_get_width:
  103. - :ref:`int<class_int>` **get_width** **(** **)** |const|
  104. Returns the texture width.
  105. ----
  106. .. _class_Texture_method_has_alpha:
  107. - :ref:`bool<class_bool>` **has_alpha** **(** **)** |const|
  108. Returns ``true`` if this ``Texture`` has an alpha channel.
  109. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  110. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  111. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`