|
|
@@ -884,49 +884,49 @@ void CanvasItem::draw_circle(const Point2 &p_pos, real_t p_radius, const Color &
|
|
|
draw_ellipse(p_pos, p_radius, p_radius, p_color, p_filled, p_width, p_antialiased);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_texture(const Ref<Texture2D> &p_texture, const Point2 &p_pos, const Color &p_modulate) {
|
|
|
+void CanvasItem::draw_texture(RequiredParam<Texture2D> rp_texture, const Point2 &p_pos, const Color &p_modulate) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
|
|
|
- ERR_FAIL_COND(p_texture.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_texture, rp_texture);
|
|
|
|
|
|
p_texture->draw(canvas_item, p_pos, p_modulate, false);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_texture_rect(const Ref<Texture2D> &p_texture, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose) {
|
|
|
+void CanvasItem::draw_texture_rect(RequiredParam<Texture2D> rp_texture, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
|
|
|
- ERR_FAIL_COND(p_texture.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_texture, rp_texture);
|
|
|
p_texture->draw_rect(canvas_item, p_rect, p_tile, p_modulate, p_transpose);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_texture_rect_region(const Ref<Texture2D> &p_texture, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, bool p_clip_uv) {
|
|
|
+void CanvasItem::draw_texture_rect_region(RequiredParam<Texture2D> rp_texture, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, bool p_clip_uv) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
- ERR_FAIL_COND(p_texture.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_texture, rp_texture);
|
|
|
p_texture->draw_rect_region(canvas_item, p_rect, p_src_rect, p_modulate, p_transpose, p_clip_uv);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_msdf_texture_rect_region(const Ref<Texture2D> &p_texture, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, double p_outline, double p_pixel_range, double p_scale) {
|
|
|
+void CanvasItem::draw_msdf_texture_rect_region(RequiredParam<Texture2D> rp_texture, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, double p_outline, double p_pixel_range, double p_scale) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
- ERR_FAIL_COND(p_texture.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_texture, rp_texture);
|
|
|
RenderingServer::get_singleton()->canvas_item_add_msdf_texture_rect_region(canvas_item, p_rect, p_texture->get_rid(), p_src_rect, p_modulate, p_outline, p_pixel_range, p_scale);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_lcd_texture_rect_region(const Ref<Texture2D> &p_texture, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate) {
|
|
|
+void CanvasItem::draw_lcd_texture_rect_region(RequiredParam<Texture2D> rp_texture, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
- ERR_FAIL_COND(p_texture.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_texture, rp_texture);
|
|
|
RenderingServer::get_singleton()->canvas_item_add_lcd_texture_rect_region(canvas_item, p_rect, p_texture->get_rid(), p_src_rect, p_modulate);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_style_box(const Ref<StyleBox> &p_style_box, const Rect2 &p_rect) {
|
|
|
+void CanvasItem::draw_style_box(RequiredParam<StyleBox> rp_style_box, const Rect2 &p_rect) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
|
|
|
- ERR_FAIL_COND(p_style_box.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_style_box, rp_style_box);
|
|
|
|
|
|
p_style_box->draw(canvas_item, p_rect);
|
|
|
}
|
|
|
@@ -995,67 +995,67 @@ void CanvasItem::draw_colored_polygon(const Vector<Point2> &p_points, const Colo
|
|
|
draw_polygon(p_points, { p_color }, p_uvs, p_texture);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_mesh(const Ref<Mesh> &p_mesh, const Ref<Texture2D> &p_texture, const Transform2D &p_transform, const Color &p_modulate) {
|
|
|
+void CanvasItem::draw_mesh(RequiredParam<Mesh> rp_mesh, const Ref<Texture2D> &p_texture, const Transform2D &p_transform, const Color &p_modulate) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
- ERR_FAIL_COND(p_mesh.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_mesh, rp_mesh);
|
|
|
RID texture_rid = p_texture.is_valid() ? p_texture->get_rid() : RID();
|
|
|
|
|
|
RenderingServer::get_singleton()->canvas_item_add_mesh(canvas_item, p_mesh->get_rid(), p_transform, p_modulate, texture_rid);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_multimesh(const Ref<MultiMesh> &p_multimesh, const Ref<Texture2D> &p_texture) {
|
|
|
+void CanvasItem::draw_multimesh(RequiredParam<MultiMesh> rp_multimesh, const Ref<Texture2D> &p_texture) {
|
|
|
ERR_THREAD_GUARD;
|
|
|
- ERR_FAIL_COND(p_multimesh.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_multimesh, rp_multimesh);
|
|
|
RID texture_rid = p_texture.is_valid() ? p_texture->get_rid() : RID();
|
|
|
RenderingServer::get_singleton()->canvas_item_add_multimesh(canvas_item, p_multimesh->get_rid(), texture_rid);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_string(const Ref<Font> &p_font, const Point2 &p_pos, const String &p_text, HorizontalAlignment p_alignment, float p_width, int p_font_size, const Color &p_modulate, BitField<TextServer::JustificationFlag> p_jst_flags, TextServer::Direction p_direction, TextServer::Orientation p_orientation, float p_oversampling) const {
|
|
|
+void CanvasItem::draw_string(RequiredParam<Font> rp_font, const Point2 &p_pos, const String &p_text, HorizontalAlignment p_alignment, float p_width, int p_font_size, const Color &p_modulate, BitField<TextServer::JustificationFlag> p_jst_flags, TextServer::Direction p_direction, TextServer::Orientation p_orientation, float p_oversampling) const {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
- ERR_FAIL_COND(p_font.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_font, rp_font);
|
|
|
|
|
|
p_font->draw_string(canvas_item, p_pos, p_text, p_alignment, p_width, p_font_size, p_modulate, p_jst_flags, p_direction, p_orientation, p_oversampling);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_multiline_string(const Ref<Font> &p_font, const Point2 &p_pos, const String &p_text, HorizontalAlignment p_alignment, float p_width, int p_font_size, int p_max_lines, const Color &p_modulate, BitField<TextServer::LineBreakFlag> p_brk_flags, BitField<TextServer::JustificationFlag> p_jst_flags, TextServer::Direction p_direction, TextServer::Orientation p_orientation, float p_oversampling) const {
|
|
|
+void CanvasItem::draw_multiline_string(RequiredParam<Font> rp_font, const Point2 &p_pos, const String &p_text, HorizontalAlignment p_alignment, float p_width, int p_font_size, int p_max_lines, const Color &p_modulate, BitField<TextServer::LineBreakFlag> p_brk_flags, BitField<TextServer::JustificationFlag> p_jst_flags, TextServer::Direction p_direction, TextServer::Orientation p_orientation, float p_oversampling) const {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
- ERR_FAIL_COND(p_font.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_font, rp_font);
|
|
|
|
|
|
p_font->draw_multiline_string(canvas_item, p_pos, p_text, p_alignment, p_width, p_font_size, p_max_lines, p_modulate, p_brk_flags, p_jst_flags, p_direction, p_orientation, p_oversampling);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_string_outline(const Ref<Font> &p_font, const Point2 &p_pos, const String &p_text, HorizontalAlignment p_alignment, float p_width, int p_font_size, int p_size, const Color &p_modulate, BitField<TextServer::JustificationFlag> p_jst_flags, TextServer::Direction p_direction, TextServer::Orientation p_orientation, float p_oversampling) const {
|
|
|
+void CanvasItem::draw_string_outline(RequiredParam<Font> rp_font, const Point2 &p_pos, const String &p_text, HorizontalAlignment p_alignment, float p_width, int p_font_size, int p_size, const Color &p_modulate, BitField<TextServer::JustificationFlag> p_jst_flags, TextServer::Direction p_direction, TextServer::Orientation p_orientation, float p_oversampling) const {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
- ERR_FAIL_COND(p_font.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_font, rp_font);
|
|
|
|
|
|
p_font->draw_string_outline(canvas_item, p_pos, p_text, p_alignment, p_width, p_font_size, p_size, p_modulate, p_jst_flags, p_direction, p_orientation, p_oversampling);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_multiline_string_outline(const Ref<Font> &p_font, const Point2 &p_pos, const String &p_text, HorizontalAlignment p_alignment, float p_width, int p_font_size, int p_max_lines, int p_size, const Color &p_modulate, BitField<TextServer::LineBreakFlag> p_brk_flags, BitField<TextServer::JustificationFlag> p_jst_flags, TextServer::Direction p_direction, TextServer::Orientation p_orientation, float p_oversampling) const {
|
|
|
+void CanvasItem::draw_multiline_string_outline(RequiredParam<Font> rp_font, const Point2 &p_pos, const String &p_text, HorizontalAlignment p_alignment, float p_width, int p_font_size, int p_max_lines, int p_size, const Color &p_modulate, BitField<TextServer::LineBreakFlag> p_brk_flags, BitField<TextServer::JustificationFlag> p_jst_flags, TextServer::Direction p_direction, TextServer::Orientation p_orientation, float p_oversampling) const {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
- ERR_FAIL_COND(p_font.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_font, rp_font);
|
|
|
|
|
|
p_font->draw_multiline_string_outline(canvas_item, p_pos, p_text, p_alignment, p_width, p_font_size, p_max_lines, p_size, p_modulate, p_brk_flags, p_jst_flags, p_direction, p_orientation, p_oversampling);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_char(const Ref<Font> &p_font, const Point2 &p_pos, const String &p_char, int p_font_size, const Color &p_modulate, float p_oversampling) const {
|
|
|
+void CanvasItem::draw_char(RequiredParam<Font> rp_font, const Point2 &p_pos, const String &p_char, int p_font_size, const Color &p_modulate, float p_oversampling) const {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
ERR_FAIL_COND(p_char.length() != 1);
|
|
|
- ERR_FAIL_COND(p_font.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_font, rp_font);
|
|
|
|
|
|
p_font->draw_char(canvas_item, p_pos, p_char[0], p_font_size, p_modulate, p_oversampling);
|
|
|
}
|
|
|
|
|
|
-void CanvasItem::draw_char_outline(const Ref<Font> &p_font, const Point2 &p_pos, const String &p_char, int p_font_size, int p_size, const Color &p_modulate, float p_oversampling) const {
|
|
|
+void CanvasItem::draw_char_outline(RequiredParam<Font> rp_font, const Point2 &p_pos, const String &p_char, int p_font_size, int p_size, const Color &p_modulate, float p_oversampling) const {
|
|
|
ERR_THREAD_GUARD;
|
|
|
ERR_DRAW_GUARD;
|
|
|
ERR_FAIL_COND(p_char.length() != 1);
|
|
|
- ERR_FAIL_COND(p_font.is_null());
|
|
|
+ EXTRACT_PARAM_OR_FAIL(p_font, rp_font);
|
|
|
|
|
|
p_font->draw_char_outline(canvas_item, p_pos, p_char[0], p_font_size, p_size, p_modulate, p_oversampling);
|
|
|
}
|
|
|
@@ -1257,9 +1257,9 @@ Vector2 CanvasItem::make_canvas_position_local(const Vector2 &screen_point) cons
|
|
|
return local_matrix.xform(screen_point);
|
|
|
}
|
|
|
|
|
|
-Ref<InputEvent> CanvasItem::make_input_local(const Ref<InputEvent> &p_event) const {
|
|
|
+RequiredResult<InputEvent> CanvasItem::make_input_local(RequiredParam<InputEvent> rp_event) const {
|
|
|
ERR_READ_THREAD_GUARD_V(Ref<InputEvent>());
|
|
|
- ERR_FAIL_COND_V(p_event.is_null(), p_event);
|
|
|
+ EXTRACT_PARAM_OR_FAIL_V(p_event, rp_event, Ref<InputEvent>());
|
|
|
ERR_FAIL_COND_V(!is_inside_tree(), p_event);
|
|
|
|
|
|
return p_event->xformed_by((get_canvas_transform() * get_global_transform()).affine_inverse());
|