|
@@ -2955,11 +2955,11 @@ void Node3DEditorViewport::_menu_option(int p_option) {
|
|
int idx = view_menu->get_popup()->get_item_index(VIEW_GIZMOS);
|
|
int idx = view_menu->get_popup()->get_item_index(VIEW_GIZMOS);
|
|
bool current = view_menu->get_popup()->is_item_checked(idx);
|
|
bool current = view_menu->get_popup()->is_item_checked(idx);
|
|
current = !current;
|
|
current = !current;
|
|
|
|
+ uint32_t layers = ((1 << 20) - 1) | (1 << (GIZMO_BASE_LAYER + index)) | (1 << GIZMO_GRID_LAYER) | (1 << MISC_TOOL_LAYER);
|
|
if (current) {
|
|
if (current) {
|
|
- camera->set_cull_mask(((1 << 20) - 1) | (1 << (GIZMO_BASE_LAYER + index)) | (1 << GIZMO_EDIT_LAYER) | (1 << GIZMO_GRID_LAYER));
|
|
|
|
- } else {
|
|
|
|
- camera->set_cull_mask(((1 << 20) - 1) | (1 << (GIZMO_BASE_LAYER + index)) | (1 << GIZMO_GRID_LAYER));
|
|
|
|
|
|
+ layers |= (1 << GIZMO_EDIT_LAYER);
|
|
}
|
|
}
|
|
|
|
+ camera->set_cull_mask(layers);
|
|
view_menu->get_popup()->set_item_checked(idx, current);
|
|
view_menu->get_popup()->set_item_checked(idx, current);
|
|
|
|
|
|
} break;
|
|
} break;
|
|
@@ -3880,7 +3880,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, Edito
|
|
surface->set_clip_contents(true);
|
|
surface->set_clip_contents(true);
|
|
camera = memnew(Camera3D);
|
|
camera = memnew(Camera3D);
|
|
camera->set_disable_gizmo(true);
|
|
camera->set_disable_gizmo(true);
|
|
- camera->set_cull_mask(((1 << 20) - 1) | (1 << (GIZMO_BASE_LAYER + p_index)) | (1 << GIZMO_EDIT_LAYER) | (1 << GIZMO_GRID_LAYER));
|
|
|
|
|
|
+ camera->set_cull_mask(((1 << 20) - 1) | (1 << (GIZMO_BASE_LAYER + p_index)) | (1 << GIZMO_EDIT_LAYER) | (1 << GIZMO_GRID_LAYER) | (1 << MISC_TOOL_LAYER));
|
|
viewport->add_child(camera);
|
|
viewport->add_child(camera);
|
|
camera->make_current();
|
|
camera->make_current();
|
|
surface->set_focus_mode(FOCUS_ALL);
|
|
surface->set_focus_mode(FOCUS_ALL);
|
|
@@ -4499,12 +4499,14 @@ Object *Node3DEditor::_get_editor_data(Object *p_what) {
|
|
RS::get_singleton()->instance_geometry_set_cast_shadows_setting(
|
|
RS::get_singleton()->instance_geometry_set_cast_shadows_setting(
|
|
si->sbox_instance,
|
|
si->sbox_instance,
|
|
RS::SHADOW_CASTING_SETTING_OFF);
|
|
RS::SHADOW_CASTING_SETTING_OFF);
|
|
|
|
+ RS::get_singleton()->instance_set_layer_mask(si->sbox_instance, 1 << Node3DEditorViewport::MISC_TOOL_LAYER);
|
|
si->sbox_instance_xray = RenderingServer::get_singleton()->instance_create2(
|
|
si->sbox_instance_xray = RenderingServer::get_singleton()->instance_create2(
|
|
selection_box_xray->get_rid(),
|
|
selection_box_xray->get_rid(),
|
|
sp->get_world_3d()->get_scenario());
|
|
sp->get_world_3d()->get_scenario());
|
|
RS::get_singleton()->instance_geometry_set_cast_shadows_setting(
|
|
RS::get_singleton()->instance_geometry_set_cast_shadows_setting(
|
|
si->sbox_instance_xray,
|
|
si->sbox_instance_xray,
|
|
RS::SHADOW_CASTING_SETTING_OFF);
|
|
RS::SHADOW_CASTING_SETTING_OFF);
|
|
|
|
+ RS::get_singleton()->instance_set_layer_mask(si->sbox_instance_xray, 1 << Node3DEditorViewport::MISC_TOOL_LAYER);
|
|
|
|
|
|
return si;
|
|
return si;
|
|
}
|
|
}
|