You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Merge pull request #22225 from groud/fix_draw_on_viewport
Fixes drawing of the 2D plugins on the 3D view
This commit is contained in:
@@ -516,12 +516,10 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event)
|
||||
return false;
|
||||
}
|
||||
|
||||
void AbstractPolygon2DEditor::forward_draw_over_viewport(Control *p_overlay) {
|
||||
void AbstractPolygon2DEditor::forward_canvas_draw_over_viewport(Control *p_overlay) {
|
||||
if (!_get_node())
|
||||
return;
|
||||
|
||||
Control *vpc = canvas_item_editor->get_viewport_control();
|
||||
|
||||
Transform2D xform = canvas_item_editor->get_canvas_transform() * _get_node()->get_global_transform();
|
||||
const Ref<Texture> handle = get_icon("EditorHandle", "EditorIcons");
|
||||
|
||||
@@ -562,7 +560,7 @@ void AbstractPolygon2DEditor::forward_draw_over_viewport(Control *p_overlay) {
|
||||
Vector2 point = xform.xform(p);
|
||||
Vector2 next_point = xform.xform(p2);
|
||||
|
||||
vpc->draw_line(point, next_point, col, 2 * EDSCALE);
|
||||
p_overlay->draw_line(point, next_point, col, 2 * EDSCALE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -586,7 +584,7 @@ void AbstractPolygon2DEditor::forward_draw_over_viewport(Control *p_overlay) {
|
||||
p2 = points[(i + 1) % n_points] + offset;
|
||||
|
||||
const Vector2 next_point = xform.xform(p2);
|
||||
vpc->draw_line(point, next_point, col, 2 * EDSCALE);
|
||||
p_overlay->draw_line(point, next_point, col, 2 * EDSCALE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -598,14 +596,14 @@ void AbstractPolygon2DEditor::forward_draw_over_viewport(Control *p_overlay) {
|
||||
const Vector2 point = xform.xform(p);
|
||||
|
||||
const Color modulate = vertex == active_point ? Color(0.5, 1, 2) : Color(1, 1, 1);
|
||||
vpc->draw_texture(handle, point - handle->get_size() * 0.5, modulate);
|
||||
p_overlay->draw_texture(handle, point - handle->get_size() * 0.5, modulate);
|
||||
}
|
||||
}
|
||||
|
||||
if (edge_point.valid()) {
|
||||
|
||||
Ref<Texture> add_handle = get_icon("EditorHandleAdd", "EditorIcons");
|
||||
vpc->draw_texture(add_handle, edge_point.pos - add_handle->get_size() * 0.5);
|
||||
p_overlay->draw_texture(add_handle, edge_point.pos - add_handle->get_size() * 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user