123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707 |
- :github_url: hide
- .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
- .. DO NOT EDIT THIS FILE, but the CanvasItem.xml source instead.
- .. The source is found in doc/classes or modules/<name>/doc_classes.
- .. _class_CanvasItem:
- CanvasItem
- ==========
- **Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
- **Inherited By:** :ref:`Control<class_Control>`, :ref:`Node2D<class_Node2D>`
- **Category:** Core
- Brief Description
- -----------------
- Base class of anything 2D.
- Properties
- ----------
- +---------------------------------+---------------------------------------------------------------------------+
- | :ref:`int<class_int>` | :ref:`light_mask<class_CanvasItem_property_light_mask>` |
- +---------------------------------+---------------------------------------------------------------------------+
- | :ref:`Material<class_Material>` | :ref:`material<class_CanvasItem_property_material>` |
- +---------------------------------+---------------------------------------------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`modulate<class_CanvasItem_property_modulate>` |
- +---------------------------------+---------------------------------------------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`self_modulate<class_CanvasItem_property_self_modulate>` |
- +---------------------------------+---------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`show_behind_parent<class_CanvasItem_property_show_behind_parent>` |
- +---------------------------------+---------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`show_on_top<class_CanvasItem_property_show_on_top>` |
- +---------------------------------+---------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`use_parent_material<class_CanvasItem_property_use_parent_material>` |
- +---------------------------------+---------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`visible<class_CanvasItem_property_visible>` |
- +---------------------------------+---------------------------------------------------------------------------+
- Methods
- -------
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`_draw<class_CanvasItem_method__draw>` **(** **)** virtual |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`float<class_float>` | :ref:`draw_char<class_CanvasItem_method_draw_char>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` position, :ref:`String<class_String>` char, :ref:`String<class_String>` next, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ) **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_circle<class_CanvasItem_method_draw_circle>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` radius, :ref:`Color<class_Color>` color **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_colored_polygon<class_CanvasItem_method_draw_colored_polygon>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs=PoolVector2Array( ), :ref:`Texture<class_Texture>` texture=null, :ref:`Texture<class_Texture>` normal_map=null, :ref:`bool<class_bool>` antialiased=false **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_line<class_CanvasItem_method_draw_line>` **(** :ref:`Vector2<class_Vector2>` from, :ref:`Vector2<class_Vector2>` to, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_mesh<class_CanvasItem_method_draw_mesh>` **(** :ref:`Mesh<class_Mesh>` mesh, :ref:`Texture<class_Texture>` texture, :ref:`Texture<class_Texture>` normal_map=null **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_multiline<class_CanvasItem_method_draw_multiline>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_multiline_colors<class_CanvasItem_method_draw_multiline_colors>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_multimesh<class_CanvasItem_method_draw_multimesh>` **(** :ref:`MultiMesh<class_MultiMesh>` multimesh, :ref:`Texture<class_Texture>` texture, :ref:`Texture<class_Texture>` normal_map=null **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_polygon<class_CanvasItem_method_draw_polygon>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs=PoolVector2Array( ), :ref:`Texture<class_Texture>` texture=null, :ref:`Texture<class_Texture>` normal_map=null, :ref:`bool<class_bool>` antialiased=false **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_polyline<class_CanvasItem_method_draw_polyline>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_polyline_colors<class_CanvasItem_method_draw_polyline_colors>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_primitive<class_CanvasItem_method_draw_primitive>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs, :ref:`Texture<class_Texture>` texture=null, :ref:`float<class_float>` width=1.0, :ref:`Texture<class_Texture>` normal_map=null **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_rect<class_CanvasItem_method_draw_rect>` **(** :ref:`Rect2<class_Rect2>` rect, :ref:`Color<class_Color>` color, :ref:`bool<class_bool>` filled=true **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_set_transform<class_CanvasItem_method_draw_set_transform>` **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` rotation, :ref:`Vector2<class_Vector2>` scale **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_set_transform_matrix<class_CanvasItem_method_draw_set_transform_matrix>` **(** :ref:`Transform2D<class_Transform2D>` xform **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_string<class_CanvasItem_method_draw_string>` **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` position, :ref:`String<class_String>` text, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`int<class_int>` clip_w=-1 **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_style_box<class_CanvasItem_method_draw_style_box>` **(** :ref:`StyleBox<class_StyleBox>` style_box, :ref:`Rect2<class_Rect2>` rect **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_texture<class_CanvasItem_method_draw_texture>` **(** :ref:`Texture<class_Texture>` texture, :ref:`Vector2<class_Vector2>` position, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`Texture<class_Texture>` normal_map=null **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_texture_rect<class_CanvasItem_method_draw_texture_rect>` **(** :ref:`Texture<class_Texture>` texture, :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 **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`draw_texture_rect_region<class_CanvasItem_method_draw_texture_rect_region>` **(** :ref:`Texture<class_Texture>` texture, :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 **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`force_update_transform<class_CanvasItem_method_force_update_transform>` **(** **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`RID<class_RID>` | :ref:`get_canvas<class_CanvasItem_method_get_canvas>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`RID<class_RID>` | :ref:`get_canvas_item<class_CanvasItem_method_get_canvas_item>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Transform2D<class_Transform2D>` | :ref:`get_canvas_transform<class_CanvasItem_method_get_canvas_transform>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Vector2<class_Vector2>` | :ref:`get_global_mouse_position<class_CanvasItem_method_get_global_mouse_position>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Transform2D<class_Transform2D>` | :ref:`get_global_transform<class_CanvasItem_method_get_global_transform>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Transform2D<class_Transform2D>` | :ref:`get_global_transform_with_canvas<class_CanvasItem_method_get_global_transform_with_canvas>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Vector2<class_Vector2>` | :ref:`get_local_mouse_position<class_CanvasItem_method_get_local_mouse_position>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Transform2D<class_Transform2D>` | :ref:`get_transform<class_CanvasItem_method_get_transform>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Rect2<class_Rect2>` | :ref:`get_viewport_rect<class_CanvasItem_method_get_viewport_rect>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Transform2D<class_Transform2D>` | :ref:`get_viewport_transform<class_CanvasItem_method_get_viewport_transform>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`World2D<class_World2D>` | :ref:`get_world_2d<class_CanvasItem_method_get_world_2d>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`hide<class_CanvasItem_method_hide>` **(** **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`is_local_transform_notification_enabled<class_CanvasItem_method_is_local_transform_notification_enabled>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`is_set_as_toplevel<class_CanvasItem_method_is_set_as_toplevel>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`is_transform_notification_enabled<class_CanvasItem_method_is_transform_notification_enabled>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`is_visible_in_tree<class_CanvasItem_method_is_visible_in_tree>` **(** **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Vector2<class_Vector2>` | :ref:`make_canvas_position_local<class_CanvasItem_method_make_canvas_position_local>` **(** :ref:`Vector2<class_Vector2>` screen_point **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`InputEvent<class_InputEvent>` | :ref:`make_input_local<class_CanvasItem_method_make_input_local>` **(** :ref:`InputEvent<class_InputEvent>` event **)** const |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`set_as_toplevel<class_CanvasItem_method_set_as_toplevel>` **(** :ref:`bool<class_bool>` enable **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`set_notify_local_transform<class_CanvasItem_method_set_notify_local_transform>` **(** :ref:`bool<class_bool>` enable **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`set_notify_transform<class_CanvasItem_method_set_notify_transform>` **(** :ref:`bool<class_bool>` enable **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`show<class_CanvasItem_method_show>` **(** **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | void | :ref:`update<class_CanvasItem_method_update>` **(** **)** |
- +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- Signals
- -------
- .. _class_CanvasItem_signal_draw:
- - **draw** **(** **)**
- Emitted when the CanvasItem must redraw. This can only be connected realtime, as deferred will not allow drawing.
- ----
- .. _class_CanvasItem_signal_hide:
- - **hide** **(** **)**
- Emitted when becoming hidden.
- ----
- .. _class_CanvasItem_signal_item_rect_changed:
- - **item_rect_changed** **(** **)**
- Emitted when the item rect has changed.
- ----
- .. _class_CanvasItem_signal_visibility_changed:
- - **visibility_changed** **(** **)**
- Emitted when the visibility (hidden/visible) changes.
- Enumerations
- ------------
- .. _enum_CanvasItem_BlendMode:
- .. _class_CanvasItem_constant_BLEND_MODE_MIX:
- .. _class_CanvasItem_constant_BLEND_MODE_ADD:
- .. _class_CanvasItem_constant_BLEND_MODE_SUB:
- .. _class_CanvasItem_constant_BLEND_MODE_MUL:
- .. _class_CanvasItem_constant_BLEND_MODE_PREMULT_ALPHA:
- .. _class_CanvasItem_constant_BLEND_MODE_DISABLED:
- enum **BlendMode**:
- - **BLEND_MODE_MIX** = **0** --- Mix blending mode. Colors are assumed to be independent of the alpha (opacity) value.
- - **BLEND_MODE_ADD** = **1** --- Additive blending mode.
- - **BLEND_MODE_SUB** = **2** --- Subtractive blending mode.
- - **BLEND_MODE_MUL** = **3** --- Multiplicative blending mode.
- - **BLEND_MODE_PREMULT_ALPHA** = **4** --- Mix blending mode. Colors are assumed to be premultiplied by the alpha (opacity) value.
- - **BLEND_MODE_DISABLED** = **5** --- Disable blending mode. Colors including alpha are written as-is. Only applicable for render targets with a transparent background. No lighting will be applied.
- Constants
- ---------
- .. _class_CanvasItem_constant_NOTIFICATION_TRANSFORM_CHANGED:
- .. _class_CanvasItem_constant_NOTIFICATION_DRAW:
- .. _class_CanvasItem_constant_NOTIFICATION_VISIBILITY_CHANGED:
- .. _class_CanvasItem_constant_NOTIFICATION_ENTER_CANVAS:
- .. _class_CanvasItem_constant_NOTIFICATION_EXIT_CANVAS:
- - **NOTIFICATION_TRANSFORM_CHANGED** = **29** --- The CanvasItem's transform has changed. This notification is only received if enabled by :ref:`set_notify_transform<class_CanvasItem_method_set_notify_transform>` or :ref:`set_notify_local_transform<class_CanvasItem_method_set_notify_local_transform>`.
- - **NOTIFICATION_DRAW** = **30** --- The CanvasItem is requested to draw.
- - **NOTIFICATION_VISIBILITY_CHANGED** = **31** --- The CanvasItem's visibility has changed.
- - **NOTIFICATION_ENTER_CANVAS** = **32** --- The CanvasItem has entered the canvas.
- - **NOTIFICATION_EXIT_CANVAS** = **33** --- The CanvasItem has exited the canvas.
- Description
- -----------
- Base class of anything 2D. Canvas items are laid out in a tree; children inherit and extend their parent's transform. CanvasItem is extended by :ref:`Control<class_Control>` for anything GUI-related, and by :ref:`Node2D<class_Node2D>` for anything related to the 2D engine.
- Any CanvasItem can draw. For this, :ref:`update<class_CanvasItem_method_update>` must be called, then :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` will be received on idle time to request redraw. Because of this, canvas items don't need to be redrawn on every frame, improving the performance significantly. Several functions for drawing on the CanvasItem are provided (see ``draw_*`` functions). However, they can only be used inside the :ref:`Object._notification<class_Object_method__notification>`, signal or :ref:`_draw<class_CanvasItem_method__draw>` virtual functions.
- Canvas items are drawn in tree order. By default, children are on top of their parents so a root CanvasItem will be drawn behind everything. This behavior can be changed on a per-item basis.
- A CanvasItem can also be hidden, which will also hide its children. It provides many ways to change parameters such as modulation (for itself and its children) and self modulation (only for itself), as well as its blend mode.
- Ultimately, a transform notification can be requested, which will notify the node that its global position changed in case the parent tree changed.
- Tutorials
- ---------
- - :doc:`../tutorials/2d/2d_transforms`
- - :doc:`../tutorials/2d/custom_drawing_in_2d`
- Property Descriptions
- ---------------------
- .. _class_CanvasItem_property_light_mask:
- - :ref:`int<class_int>` **light_mask**
- +----------+-----------------------+
- | *Setter* | set_light_mask(value) |
- +----------+-----------------------+
- | *Getter* | get_light_mask() |
- +----------+-----------------------+
- The rendering layers in which this ``CanvasItem`` responds to :ref:`Light2D<class_Light2D>` nodes. Default value: ``1``.
- ----
- .. _class_CanvasItem_property_material:
- - :ref:`Material<class_Material>` **material**
- +----------+---------------------+
- | *Setter* | set_material(value) |
- +----------+---------------------+
- | *Getter* | get_material() |
- +----------+---------------------+
- The material applied to textures on this ``CanvasItem``. Default value: ``null``.
- ----
- .. _class_CanvasItem_property_modulate:
- - :ref:`Color<class_Color>` **modulate**
- +----------+---------------------+
- | *Setter* | set_modulate(value) |
- +----------+---------------------+
- | *Getter* | get_modulate() |
- +----------+---------------------+
- The color applied to textures on this ``CanvasItem``. Default value: ``Color(1, 1, 1, 1)`` (opaque "white").
- ----
- .. _class_CanvasItem_property_self_modulate:
- - :ref:`Color<class_Color>` **self_modulate**
- +----------+--------------------------+
- | *Setter* | set_self_modulate(value) |
- +----------+--------------------------+
- | *Getter* | get_self_modulate() |
- +----------+--------------------------+
- The color applied to textures on this ``CanvasItem``. This is not inherited by children ``CanvasItem``\ s. Default value: ``Color(1, 1, 1, 1)`` (opaque "white")..
- ----
- .. _class_CanvasItem_property_show_behind_parent:
- - :ref:`bool<class_bool>` **show_behind_parent**
- +----------+---------------------------------+
- | *Setter* | set_draw_behind_parent(value) |
- +----------+---------------------------------+
- | *Getter* | is_draw_behind_parent_enabled() |
- +----------+---------------------------------+
- If ``true``, the object draws behind its parent. Default value: ``false``.
- ----
- .. _class_CanvasItem_property_show_on_top:
- - :ref:`bool<class_bool>` **show_on_top**
- If ``true``, the object draws on top of its parent. Default value: ``true``.
- ----
- .. _class_CanvasItem_property_use_parent_material:
- - :ref:`bool<class_bool>` **use_parent_material**
- +----------+--------------------------------+
- | *Setter* | set_use_parent_material(value) |
- +----------+--------------------------------+
- | *Getter* | get_use_parent_material() |
- +----------+--------------------------------+
- If ``true``, the parent ``CanvasItem``'s :ref:`material<class_CanvasItem_property_material>` property is used as this one's material. Default value: ``false``.
- ----
- .. _class_CanvasItem_property_visible:
- - :ref:`bool<class_bool>` **visible**
- +----------+--------------------+
- | *Setter* | set_visible(value) |
- +----------+--------------------+
- | *Getter* | is_visible() |
- +----------+--------------------+
- If ``true``, this ``CanvasItem`` is drawn. Default value: ``true``. For controls that inherit :ref:`Popup<class_Popup>`, the correct way to make them visible is to call one of the multiple ``popup*()`` functions instead.
- Method Descriptions
- -------------------
- .. _class_CanvasItem_method__draw:
- - void **_draw** **(** **)** virtual
- Called (if exists) to draw the canvas item.
- ----
- .. _class_CanvasItem_method_draw_char:
- - :ref:`float<class_float>` **draw_char** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` position, :ref:`String<class_String>` char, :ref:`String<class_String>` next, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ) **)**
- Draws a string character using a custom font. Returns the advance, depending on the character width and kerning with an optional next character.
- ----
- .. _class_CanvasItem_method_draw_circle:
- - void **draw_circle** **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` radius, :ref:`Color<class_Color>` color **)**
- Draws a colored circle.
- ----
- .. _class_CanvasItem_method_draw_colored_polygon:
- - void **draw_colored_polygon** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs=PoolVector2Array( ), :ref:`Texture<class_Texture>` texture=null, :ref:`Texture<class_Texture>` normal_map=null, :ref:`bool<class_bool>` antialiased=false **)**
- Draws a colored polygon of any amount of points, convex or concave.
- ----
- .. _class_CanvasItem_method_draw_line:
- - void **draw_line** **(** :ref:`Vector2<class_Vector2>` from, :ref:`Vector2<class_Vector2>` to, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
- Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased.
- ----
- .. _class_CanvasItem_method_draw_mesh:
- - void **draw_mesh** **(** :ref:`Mesh<class_Mesh>` mesh, :ref:`Texture<class_Texture>` texture, :ref:`Texture<class_Texture>` normal_map=null **)**
- ----
- .. _class_CanvasItem_method_draw_multiline:
- - void **draw_multiline** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
- Draws multiple, parallel lines with a uniform ``color``. ``width`` and ``antialiased`` are currently not implemented and have no effect.
- ----
- .. _class_CanvasItem_method_draw_multiline_colors:
- - void **draw_multiline_colors** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
- Draws multiple, parallel lines with a uniform ``width``, segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between ``points`` and ``colors``.
- ----
- .. _class_CanvasItem_method_draw_multimesh:
- - void **draw_multimesh** **(** :ref:`MultiMesh<class_MultiMesh>` multimesh, :ref:`Texture<class_Texture>` texture, :ref:`Texture<class_Texture>` normal_map=null **)**
- ----
- .. _class_CanvasItem_method_draw_polygon:
- - void **draw_polygon** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs=PoolVector2Array( ), :ref:`Texture<class_Texture>` texture=null, :ref:`Texture<class_Texture>` normal_map=null, :ref:`bool<class_bool>` antialiased=false **)**
- Draws a polygon of any amount of points, convex or concave.
- ----
- .. _class_CanvasItem_method_draw_polyline:
- - void **draw_polyline** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`Color<class_Color>` color, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
- Draws interconnected line segments with a uniform ``color`` and ``width`` and optional antialiasing.
- ----
- .. _class_CanvasItem_method_draw_polyline_colors:
- - void **draw_polyline_colors** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`float<class_float>` width=1.0, :ref:`bool<class_bool>` antialiased=false **)**
- Draws interconnected line segments with a uniform ``width``, segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between ``points`` and ``colors``.
- ----
- .. _class_CanvasItem_method_draw_primitive:
- - void **draw_primitive** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` points, :ref:`PoolColorArray<class_PoolColorArray>` colors, :ref:`PoolVector2Array<class_PoolVector2Array>` uvs, :ref:`Texture<class_Texture>` texture=null, :ref:`float<class_float>` width=1.0, :ref:`Texture<class_Texture>` normal_map=null **)**
- Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle and 4 points for a quad.
- ----
- .. _class_CanvasItem_method_draw_rect:
- - void **draw_rect** **(** :ref:`Rect2<class_Rect2>` rect, :ref:`Color<class_Color>` color, :ref:`bool<class_bool>` filled=true **)**
- Draws a colored rectangle.
- ----
- .. _class_CanvasItem_method_draw_set_transform:
- - void **draw_set_transform** **(** :ref:`Vector2<class_Vector2>` position, :ref:`float<class_float>` rotation, :ref:`Vector2<class_Vector2>` scale **)**
- Sets a custom transform for drawing via components. Anything drawn afterwards will be transformed by this.
- ----
- .. _class_CanvasItem_method_draw_set_transform_matrix:
- - void **draw_set_transform_matrix** **(** :ref:`Transform2D<class_Transform2D>` xform **)**
- Sets a custom transform for drawing via matrix. Anything drawn afterwards will be transformed by this.
- ----
- .. _class_CanvasItem_method_draw_string:
- - void **draw_string** **(** :ref:`Font<class_Font>` font, :ref:`Vector2<class_Vector2>` position, :ref:`String<class_String>` text, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`int<class_int>` clip_w=-1 **)**
- Draws a string using a custom font.
- ----
- .. _class_CanvasItem_method_draw_style_box:
- - void **draw_style_box** **(** :ref:`StyleBox<class_StyleBox>` style_box, :ref:`Rect2<class_Rect2>` rect **)**
- Draws a styled rectangle.
- ----
- .. _class_CanvasItem_method_draw_texture:
- - void **draw_texture** **(** :ref:`Texture<class_Texture>` texture, :ref:`Vector2<class_Vector2>` position, :ref:`Color<class_Color>` modulate=Color( 1, 1, 1, 1 ), :ref:`Texture<class_Texture>` normal_map=null **)**
- Draws a texture at a given position.
- ----
- .. _class_CanvasItem_method_draw_texture_rect:
- - void **draw_texture_rect** **(** :ref:`Texture<class_Texture>` texture, :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 **)**
- Draws a textured rectangle at a given position, optionally modulated by a color. If ``transpose`` is ``true``, the texture will have its X and Y coordinates swapped.
- ----
- .. _class_CanvasItem_method_draw_texture_rect_region:
- - void **draw_texture_rect_region** **(** :ref:`Texture<class_Texture>` texture, :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 **)**
- Draws a textured rectangle region at a given position, optionally modulated by a color. If ``transpose`` is ``true``, the texture will have its X and Y coordinates swapped.
- ----
- .. _class_CanvasItem_method_force_update_transform:
- - void **force_update_transform** **(** **)**
- ----
- .. _class_CanvasItem_method_get_canvas:
- - :ref:`RID<class_RID>` **get_canvas** **(** **)** const
- Returns the :ref:`RID<class_RID>` of the :ref:`World2D<class_World2D>` canvas where this item is in.
- ----
- .. _class_CanvasItem_method_get_canvas_item:
- - :ref:`RID<class_RID>` **get_canvas_item** **(** **)** const
- Returns the canvas item RID used by :ref:`VisualServer<class_VisualServer>` for this item.
- ----
- .. _class_CanvasItem_method_get_canvas_transform:
- - :ref:`Transform2D<class_Transform2D>` **get_canvas_transform** **(** **)** const
- Get the transform matrix of this item's canvas.
- ----
- .. _class_CanvasItem_method_get_global_mouse_position:
- - :ref:`Vector2<class_Vector2>` **get_global_mouse_position** **(** **)** const
- Get the global position of the mouse.
- ----
- .. _class_CanvasItem_method_get_global_transform:
- - :ref:`Transform2D<class_Transform2D>` **get_global_transform** **(** **)** const
- Get the global transform matrix of this item.
- ----
- .. _class_CanvasItem_method_get_global_transform_with_canvas:
- - :ref:`Transform2D<class_Transform2D>` **get_global_transform_with_canvas** **(** **)** const
- Get the global transform matrix of this item in relation to the canvas.
- ----
- .. _class_CanvasItem_method_get_local_mouse_position:
- - :ref:`Vector2<class_Vector2>` **get_local_mouse_position** **(** **)** const
- Get the mouse position relative to this item's position.
- ----
- .. _class_CanvasItem_method_get_transform:
- - :ref:`Transform2D<class_Transform2D>` **get_transform** **(** **)** const
- Get the transform matrix of this item.
- ----
- .. _class_CanvasItem_method_get_viewport_rect:
- - :ref:`Rect2<class_Rect2>` **get_viewport_rect** **(** **)** const
- Get the viewport's boundaries as a :ref:`Rect2<class_Rect2>`.
- ----
- .. _class_CanvasItem_method_get_viewport_transform:
- - :ref:`Transform2D<class_Transform2D>` **get_viewport_transform** **(** **)** const
- Get this item's transform in relation to the viewport.
- ----
- .. _class_CanvasItem_method_get_world_2d:
- - :ref:`World2D<class_World2D>` **get_world_2d** **(** **)** const
- Get the :ref:`World2D<class_World2D>` where this item is in.
- ----
- .. _class_CanvasItem_method_hide:
- - void **hide** **(** **)**
- Hide the CanvasItem if it's currently visible.
- ----
- .. _class_CanvasItem_method_is_local_transform_notification_enabled:
- - :ref:`bool<class_bool>` **is_local_transform_notification_enabled** **(** **)** const
- Returns ``true`` if local transform notifications are communicated to children.
- ----
- .. _class_CanvasItem_method_is_set_as_toplevel:
- - :ref:`bool<class_bool>` **is_set_as_toplevel** **(** **)** const
- Returns ``true`` if the node is set as top-level. See :ref:`set_as_toplevel<class_CanvasItem_method_set_as_toplevel>`.
- ----
- .. _class_CanvasItem_method_is_transform_notification_enabled:
- - :ref:`bool<class_bool>` **is_transform_notification_enabled** **(** **)** const
- Returns ``true`` if global transform notifications are communicated to children.
- ----
- .. _class_CanvasItem_method_is_visible_in_tree:
- - :ref:`bool<class_bool>` **is_visible_in_tree** **(** **)** const
- Returns ``true`` if the node is present in the :ref:`SceneTree<class_SceneTree>`, its :ref:`visible<class_CanvasItem_property_visible>` property is ``true`` and its inherited visibility is also ``true``.
- ----
- .. _class_CanvasItem_method_make_canvas_position_local:
- - :ref:`Vector2<class_Vector2>` **make_canvas_position_local** **(** :ref:`Vector2<class_Vector2>` screen_point **)** const
- Assigns ``screen_point`` as this node's new local transform.
- ----
- .. _class_CanvasItem_method_make_input_local:
- - :ref:`InputEvent<class_InputEvent>` **make_input_local** **(** :ref:`InputEvent<class_InputEvent>` event **)** const
- Transformations issued by ``event``'s inputs are applied in local space instead of global space.
- ----
- .. _class_CanvasItem_method_set_as_toplevel:
- - void **set_as_toplevel** **(** :ref:`bool<class_bool>` enable **)**
- If ``enable`` is ``true``, the node won't inherit its transform from parent canvas items.
- ----
- .. _class_CanvasItem_method_set_notify_local_transform:
- - void **set_notify_local_transform** **(** :ref:`bool<class_bool>` enable **)**
- If ``enable`` is ``true``, children will be updated with local transform data.
- ----
- .. _class_CanvasItem_method_set_notify_transform:
- - void **set_notify_transform** **(** :ref:`bool<class_bool>` enable **)**
- If ``enable`` is ``true``, children will be updated with global transform data.
- ----
- .. _class_CanvasItem_method_show:
- - void **show** **(** **)**
- Show the CanvasItem if it's currently hidden. For controls that inherit :ref:`Popup<class_Popup>`, the correct way to make them visible is to call one of the multiple ``popup*()`` functions instead.
- ----
- .. _class_CanvasItem_method_update:
- - void **update** **(** **)**
- Queue the CanvasItem for update. :ref:`NOTIFICATION_DRAW<class_CanvasItem_constant_NOTIFICATION_DRAW>` will be called on idle time to request redraw.
|