1
0
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:
Rémi Verschelde
2018-09-20 21:45:16 +02:00
committed by GitHub
18 changed files with 100 additions and 70 deletions

View File

@@ -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);
}
}