Files
godot-docs/classes/class_canvasitem.rst
Rémi Verschelde fa00c829f0 Add inheritance path
Also fix parsing of [method (Class.)name]
2016-02-08 18:31:35 +01:00

445 lines
49 KiB
ReStructuredText

.. _class_CanvasItem:
CanvasItem
==========
**Inherits:** :ref:`Node<class_node>` **<** :ref:`Object<class_object>`
**Inherited By:** :ref:`Node2D<class_node2d>`, :ref:`Control<class_control>`
**Category:** Core
Brief Description
-----------------
Base class of anything 2D.
Member Functions
----------------
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`_draw<class_CanvasItem__draw>` **(** **)** virtual |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`edit_set_state<class_CanvasItem_edit_set_state>` **(** var state **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`edit_get<class_CanvasItem_edit_get>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`edit_set_rect<class_CanvasItem_edit_set_rect>` **(** :ref:`Rect2<class_rect2>` rect **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`edit_rotate<class_CanvasItem_edit_rotate>` **(** :ref:`float<class_float>` degrees **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Rect2<class_rect2>` | :ref:`get_item_rect<class_CanvasItem_get_item_rect>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_rid>` | :ref:`get_canvas_item<class_CanvasItem_get_canvas_item>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_visible<class_CanvasItem_is_visible>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_hidden<class_CanvasItem_is_hidden>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`show<class_CanvasItem_show>` **(** **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`hide<class_CanvasItem_hide>` **(** **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_hidden<class_CanvasItem_set_hidden>` **(** :ref:`bool<class_bool>` hidden **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`update<class_CanvasItem_update>` **(** **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_as_toplevel<class_CanvasItem_set_as_toplevel>` **(** :ref:`bool<class_bool>` enable **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_set_as_toplevel<class_CanvasItem_is_set_as_toplevel>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_blend_mode<class_CanvasItem_set_blend_mode>` **(** :ref:`int<class_int>` blend_mode **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_blend_mode<class_CanvasItem_get_blend_mode>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_light_mask<class_CanvasItem_set_light_mask>` **(** :ref:`int<class_int>` light_mask **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_light_mask<class_CanvasItem_get_light_mask>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_opacity<class_CanvasItem_set_opacity>` **(** :ref:`float<class_float>` opacity **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_opacity<class_CanvasItem_get_opacity>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_self_opacity<class_CanvasItem_set_self_opacity>` **(** :ref:`float<class_float>` self_opacity **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_self_opacity<class_CanvasItem_get_self_opacity>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_draw_behind_parent<class_CanvasItem_set_draw_behind_parent>` **(** :ref:`bool<class_bool>` enable **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_draw_behind_parent_enabled<class_CanvasItem_is_draw_behind_parent_enabled>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_line<class_CanvasItem_draw_line>` **(** :ref:`Vector2<class_vector2>` from, :ref:`Vector2<class_vector2>` to, :ref:`Color<class_color>` color, :ref:`float<class_float>` width=1 **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_rect<class_CanvasItem_draw_rect>` **(** :ref:`Rect2<class_rect2>` rect, :ref:`Color<class_color>` color **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_circle<class_CanvasItem_draw_circle>` **(** :ref:`Vector2<class_vector2>` pos, :ref:`float<class_float>` radius, :ref:`Color<class_color>` color **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_texture<class_CanvasItem_draw_texture>` **(** :ref:`Texture<class_texture>` texture, :ref:`Vector2<class_vector2>` pos, :ref:`Color<class_color>` modulate=Color(1,1,1,1) **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_texture_rect<class_CanvasItem_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 **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_texture_rect_region<class_CanvasItem_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 **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_style_box<class_CanvasItem_draw_style_box>` **(** :ref:`StyleBox<class_stylebox>` style_box, :ref:`Rect2<class_rect2>` rect **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_primitive<class_CanvasItem_draw_primitive>` **(** :ref:`Vector2Array<class_vector2array>` points, :ref:`ColorArray<class_colorarray>` colors, :ref:`Vector2Array<class_vector2array>` uvs=Array(), :ref:`Texture<class_texture>` texture=Object(), :ref:`float<class_float>` width=1 **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_polygon<class_CanvasItem_draw_polygon>` **(** :ref:`Vector2Array<class_vector2array>` points, :ref:`ColorArray<class_colorarray>` colors, :ref:`Vector2Array<class_vector2array>` uvs=Array(), :ref:`Texture<class_texture>` texture=Object() **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_colored_polygon<class_CanvasItem_draw_colored_polygon>` **(** :ref:`Vector2Array<class_vector2array>` points, :ref:`Color<class_color>` color, :ref:`Vector2Array<class_vector2array>` uvs=Array(), :ref:`Texture<class_texture>` texture=Object() **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_string<class_CanvasItem_draw_string>` **(** :ref:`Font<class_font>` font, :ref:`Vector2<class_vector2>` pos, :ref:`String<class_string>` text, :ref:`Color<class_color>` modulate=Color(1,1,1,1), :ref:`int<class_int>` clip_w=-1 **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`draw_char<class_CanvasItem_draw_char>` **(** :ref:`Font<class_font>` font, :ref:`Vector2<class_vector2>` pos, :ref:`String<class_string>` char, :ref:`String<class_string>` next, :ref:`Color<class_color>` modulate=Color(1,1,1,1) **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`draw_set_transform<class_CanvasItem_draw_set_transform>` **(** :ref:`Vector2<class_vector2>` pos, :ref:`float<class_float>` rot, :ref:`Vector2<class_vector2>` scale **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Matrix32<class_matrix32>` | :ref:`get_transform<class_CanvasItem_get_transform>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Matrix32<class_matrix32>` | :ref:`get_global_transform<class_CanvasItem_get_global_transform>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Matrix32<class_matrix32>` | :ref:`get_global_transform_with_canvas<class_CanvasItem_get_global_transform_with_canvas>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Matrix32<class_matrix32>` | :ref:`get_viewport_transform<class_CanvasItem_get_viewport_transform>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Rect2<class_rect2>` | :ref:`get_viewport_rect<class_CanvasItem_get_viewport_rect>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Matrix32<class_matrix32>` | :ref:`get_canvas_transform<class_CanvasItem_get_canvas_transform>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_vector2>` | :ref:`get_local_mouse_pos<class_CanvasItem_get_local_mouse_pos>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector2<class_vector2>` | :ref:`get_global_mouse_pos<class_CanvasItem_get_global_mouse_pos>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RID<class_rid>` | :ref:`get_canvas<class_CanvasItem_get_canvas>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Object<class_object>` | :ref:`get_world_2d<class_CanvasItem_get_world_2d>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_material<class_CanvasItem_set_material>` **(** :ref:`CanvasItemMaterial<class_canvasitemmaterial>` material **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`CanvasItemMaterial<class_canvasitemmaterial>` | :ref:`get_material<class_CanvasItem_get_material>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_use_parent_material<class_CanvasItem_set_use_parent_material>` **(** :ref:`bool<class_bool>` enable **)** |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_use_parent_material<class_CanvasItem_get_use_parent_material>` **(** **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`InputEvent<class_inputevent>` | :ref:`make_input_local<class_CanvasItem_make_input_local>` **(** :ref:`InputEvent<class_inputevent>` event **)** const |
+------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Signals
-------
- **item_rect_changed** **(** **)**
- **draw** **(** **)**
- **visibility_changed** **(** **)**
- **hide** **(** **)**
Numeric Constants
-----------------
- **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** --- Substractive 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.
- **NOTIFICATION_DRAW** = **30** --- CanvasItem is requested to draw.
- **NOTIFICATION_VISIBILITY_CHANGED** = **31** --- Canvas item visibility has changed.
- **NOTIFICATION_ENTER_CANVAS** = **32** --- Canvas item has entered the canvas.
- **NOTIFICATION_EXIT_CANVAS** = **33** --- Canvas item has exited the canvas.
- **NOTIFICATION_TRANSFORM_CHANGED** = **29** --- Canvas item transform has changed. Only received if requested.
Description
-----------
Base class of anything 2D. Canvas items are laid out in a tree and children inherit and extend the transform of their parent. CanvasItem is extended by :ref:`Control<class_control>`, for anything GUI related, and by :ref:`Node2D<class_node2d>` for anything 2D engine related.
Any CanvasItem can draw. For this, the "update" function must be called, then NOTIFICATION_DRAW will be received on idle time to request redraw. Because of this, canvas items don't need to be redraw on every frame, improving the performance significan'tly. Several functions for drawing on the CanvasItem are provided (see draw\_\* functions). They can only be used inside the notification, signal or _draw() overrided function, though.
Canvas items are draw in tree order. By default, children are on top of their parents so a root CanvasItem will be drawn behind everything (this can be changed per item though).
Canvas items can also be hidden (hiding also their subtree). They provide many means for changing standard parameters such as opacity (for it and the subtree) and self opacity, 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.
Member Function Description
---------------------------
.. _class_CanvasItem__draw:
- void **_draw** **(** **)** virtual
Called (if exists) to draw the canvas item.
.. _class_CanvasItem_edit_set_state:
- void **edit_set_state** **(** var state **)**
Used for editing, returns an opaque value represeting the transform state.
.. _class_CanvasItem_edit_get:
- void **edit_get** **(** **)** const
.. _class_CanvasItem_edit_set_rect:
- void **edit_set_rect** **(** :ref:`Rect2<class_rect2>` rect **)**
.. _class_CanvasItem_edit_rotate:
- void **edit_rotate** **(** :ref:`float<class_float>` degrees **)**
Used for editing, handle rotation.
.. _class_CanvasItem_get_item_rect:
- :ref:`Rect2<class_rect2>` **get_item_rect** **(** **)** const
Return a rect containing the editable contents of the item.
.. _class_CanvasItem_get_canvas_item:
- :ref:`RID<class_rid>` **get_canvas_item** **(** **)** const
Return the canvas item RID used by :ref:`VisualServer<class_visualserver>` for this item.
.. _class_CanvasItem_is_visible:
- :ref:`bool<class_bool>` **is_visible** **(** **)** const
Return true if this CanvasItem is visible. It may be invisible because itself or a parent canvas item is hidden.
.. _class_CanvasItem_is_hidden:
- :ref:`bool<class_bool>` **is_hidden** **(** **)** const
Return true if this CanvasItem is hidden. Note that the CanvasItem may not be visible, but as long as it's not hidden (:ref:`hide<class_CanvasItem_hide>` called) the function will return false.
.. _class_CanvasItem_show:
- void **show** **(** **)**
Show the CanvasItem currently hidden.
.. _class_CanvasItem_hide:
- void **hide** **(** **)**
Hide the CanvasItem currently visible.
.. _class_CanvasItem_set_hidden:
- void **set_hidden** **(** :ref:`bool<class_bool>` hidden **)**
.. _class_CanvasItem_update:
- void **update** **(** **)**
Queue the CanvasItem for update. NOTIFICATION_DRAW will be called on idle time to request redraw.
.. _class_CanvasItem_set_as_toplevel:
- void **set_as_toplevel** **(** :ref:`bool<class_bool>` enable **)**
Set as toplevel. This means that it will not inherit transform from parent canvas items.
.. _class_CanvasItem_is_set_as_toplevel:
- :ref:`bool<class_bool>` **is_set_as_toplevel** **(** **)** const
Return if set as toplevel. See :ref:`set_as_toplevel<class_CanvasItem_set_as_toplevel>`.
.. _class_CanvasItem_set_blend_mode:
- void **set_blend_mode** **(** :ref:`int<class_int>` blend_mode **)**
Set the blending mode from enum BLEND_MODE\_\*.
.. _class_CanvasItem_get_blend_mode:
- :ref:`int<class_int>` **get_blend_mode** **(** **)** const
Return the current blending mode from enum BLEND_MODE\_\*.
.. _class_CanvasItem_set_light_mask:
- void **set_light_mask** **(** :ref:`int<class_int>` light_mask **)**
.. _class_CanvasItem_get_light_mask:
- :ref:`int<class_int>` **get_light_mask** **(** **)** const
.. _class_CanvasItem_set_opacity:
- void **set_opacity** **(** :ref:`float<class_float>` opacity **)**
Set canvas item opacity. This will affect the canvas item and all the children.
.. _class_CanvasItem_get_opacity:
- :ref:`float<class_float>` **get_opacity** **(** **)** const
Return the canvas item opacity. This affects the canvas item and all the children.
.. _class_CanvasItem_set_self_opacity:
- void **set_self_opacity** **(** :ref:`float<class_float>` self_opacity **)**
Set canvas item self-opacity. This does not affect the opacity of children items.
.. _class_CanvasItem_get_self_opacity:
- :ref:`float<class_float>` **get_self_opacity** **(** **)** const
Return the canvas item self-opacity.
.. _class_CanvasItem_set_draw_behind_parent:
- void **set_draw_behind_parent** **(** :ref:`bool<class_bool>` enable **)**
Sets whether the canvas item is drawn behind its parent.
.. _class_CanvasItem_is_draw_behind_parent_enabled:
- :ref:`bool<class_bool>` **is_draw_behind_parent_enabled** **(** **)** const
Return whether the item is drawn behind its parent.
.. _class_CanvasItem_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 **)**
Draw a line from a 2D point to another, with a given color and width.
.. _class_CanvasItem_draw_rect:
- void **draw_rect** **(** :ref:`Rect2<class_rect2>` rect, :ref:`Color<class_color>` color **)**
Draw a colored rectangle.
.. _class_CanvasItem_draw_circle:
- void **draw_circle** **(** :ref:`Vector2<class_vector2>` pos, :ref:`float<class_float>` radius, :ref:`Color<class_color>` color **)**
Draw a colored circle.
.. _class_CanvasItem_draw_texture:
- void **draw_texture** **(** :ref:`Texture<class_texture>` texture, :ref:`Vector2<class_vector2>` pos, :ref:`Color<class_color>` modulate=Color(1,1,1,1) **)**
Draw a texture at a given position.
.. _class_CanvasItem_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 **)**
Draw a textured rectangle at a given position, optionally modulated by a color. Transpose swaps the x and y coordinates when reading the texture.
.. _class_CanvasItem_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 **)**
Draw a textured rectangle region at a given position, optionally modulated by a color. Transpose swaps the x and y coordinates when reading the texture.
.. _class_CanvasItem_draw_style_box:
- void **draw_style_box** **(** :ref:`StyleBox<class_stylebox>` style_box, :ref:`Rect2<class_rect2>` rect **)**
Draw a styled rectangle.
.. _class_CanvasItem_draw_primitive:
- void **draw_primitive** **(** :ref:`Vector2Array<class_vector2array>` points, :ref:`ColorArray<class_colorarray>` colors, :ref:`Vector2Array<class_vector2array>` uvs=Array(), :ref:`Texture<class_texture>` texture=Object(), :ref:`float<class_float>` width=1 **)**
Draw 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_draw_polygon:
- void **draw_polygon** **(** :ref:`Vector2Array<class_vector2array>` points, :ref:`ColorArray<class_colorarray>` colors, :ref:`Vector2Array<class_vector2array>` uvs=Array(), :ref:`Texture<class_texture>` texture=Object() **)**
Draw a polygon of any amount of points, convex or concave.
.. _class_CanvasItem_draw_colored_polygon:
- void **draw_colored_polygon** **(** :ref:`Vector2Array<class_vector2array>` points, :ref:`Color<class_color>` color, :ref:`Vector2Array<class_vector2array>` uvs=Array(), :ref:`Texture<class_texture>` texture=Object() **)**
Draw a colored polygon of any amount of points, convex or concave.
.. _class_CanvasItem_draw_string:
- void **draw_string** **(** :ref:`Font<class_font>` font, :ref:`Vector2<class_vector2>` pos, :ref:`String<class_string>` text, :ref:`Color<class_color>` modulate=Color(1,1,1,1), :ref:`int<class_int>` clip_w=-1 **)**
Draw a string using a custom font.
.. _class_CanvasItem_draw_char:
- :ref:`float<class_float>` **draw_char** **(** :ref:`Font<class_font>` font, :ref:`Vector2<class_vector2>` pos, :ref:`String<class_string>` char, :ref:`String<class_string>` next, :ref:`Color<class_color>` modulate=Color(1,1,1,1) **)**
Draw a string character using a custom font. Returns the advance, depending on the char width and kerning with an optional next char.
.. _class_CanvasItem_draw_set_transform:
- void **draw_set_transform** **(** :ref:`Vector2<class_vector2>` pos, :ref:`float<class_float>` rot, :ref:`Vector2<class_vector2>` scale **)**
Set a custom transform for drawing. Anything drawn afterwards will be transformed by this.
.. _class_CanvasItem_get_transform:
- :ref:`Matrix32<class_matrix32>` **get_transform** **(** **)** const
.. _class_CanvasItem_get_global_transform:
- :ref:`Matrix32<class_matrix32>` **get_global_transform** **(** **)** const
.. _class_CanvasItem_get_global_transform_with_canvas:
- :ref:`Matrix32<class_matrix32>` **get_global_transform_with_canvas** **(** **)** const
.. _class_CanvasItem_get_viewport_transform:
- :ref:`Matrix32<class_matrix32>` **get_viewport_transform** **(** **)** const
.. _class_CanvasItem_get_viewport_rect:
- :ref:`Rect2<class_rect2>` **get_viewport_rect** **(** **)** const
.. _class_CanvasItem_get_canvas_transform:
- :ref:`Matrix32<class_matrix32>` **get_canvas_transform** **(** **)** const
.. _class_CanvasItem_get_local_mouse_pos:
- :ref:`Vector2<class_vector2>` **get_local_mouse_pos** **(** **)** const
.. _class_CanvasItem_get_global_mouse_pos:
- :ref:`Vector2<class_vector2>` **get_global_mouse_pos** **(** **)** const
.. _class_CanvasItem_get_canvas:
- :ref:`RID<class_rid>` **get_canvas** **(** **)** const
.. _class_CanvasItem_get_world_2d:
- :ref:`Object<class_object>` **get_world_2d** **(** **)** const
.. _class_CanvasItem_set_material:
- void **set_material** **(** :ref:`CanvasItemMaterial<class_canvasitemmaterial>` material **)**
.. _class_CanvasItem_get_material:
- :ref:`CanvasItemMaterial<class_canvasitemmaterial>` **get_material** **(** **)** const
.. _class_CanvasItem_set_use_parent_material:
- void **set_use_parent_material** **(** :ref:`bool<class_bool>` enable **)**
.. _class_CanvasItem_get_use_parent_material:
- :ref:`bool<class_bool>` **get_use_parent_material** **(** **)** const
.. _class_CanvasItem_make_input_local:
- :ref:`InputEvent<class_inputevent>` **make_input_local** **(** :ref:`InputEvent<class_inputevent>` event **)** const