mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 05:31:01 +00:00 
			
		
		
		
	Put misc. 3D tool visible instances on their own layer
This makes that visible stuff invisible to ReflectionProbes, whose preview in the editor shouldn't involve them.
This commit is contained in:
		
							parent
							
								
									e4f2f899db
								
							
						
					
					
						commit
						08a46bbacd
					
				
					 3 changed files with 14 additions and 6 deletions
				
			
		|  | @ -2980,10 +2980,11 @@ void SpatialEditorViewport::_menu_option(int p_option) { | |||
| 			int idx = view_menu->get_popup()->get_item_index(VIEW_GIZMOS); | ||||
| 			bool current = view_menu->get_popup()->is_item_checked(idx); | ||||
| 			current = !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)); | ||||
| 			uint32_t layers = ((1 << 20) - 1) | (1 << (GIZMO_BASE_LAYER + index)) | (1 << GIZMO_GRID_LAYER) | (1 << MISC_TOOL_LAYER); | ||||
| 			if (current) { | ||||
| 				layers |= (1 << GIZMO_EDIT_LAYER); | ||||
| 			} | ||||
| 			camera->set_cull_mask(layers); | ||||
| 			view_menu->get_popup()->set_item_checked(idx, current); | ||||
| 
 | ||||
| 		} break; | ||||
|  | @ -3866,7 +3867,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed | |||
| 	surface->set_clip_contents(true); | ||||
| 	camera = memnew(Camera); | ||||
| 	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); | ||||
| 	camera->make_current(); | ||||
| 	surface->set_focus_mode(FOCUS_ALL); | ||||
|  | @ -4478,12 +4479,14 @@ Object *SpatialEditor::_get_editor_data(Object *p_what) { | |||
| 	VS::get_singleton()->instance_geometry_set_cast_shadows_setting( | ||||
| 			si->sbox_instance, | ||||
| 			VS::SHADOW_CASTING_SETTING_OFF); | ||||
| 	VS::get_singleton()->instance_set_layer_mask(si->sbox_instance, 1 << SpatialEditorViewport::MISC_TOOL_LAYER); | ||||
| 	si->sbox_instance_xray = VisualServer::get_singleton()->instance_create2( | ||||
| 			selection_box_xray->get_rid(), | ||||
| 			sp->get_world()->get_scenario()); | ||||
| 	VS::get_singleton()->instance_geometry_set_cast_shadows_setting( | ||||
| 			si->sbox_instance_xray, | ||||
| 			VS::SHADOW_CASTING_SETTING_OFF); | ||||
| 	VS::get_singleton()->instance_set_layer_mask(si->sbox_instance_xray, 1 << SpatialEditorViewport::MISC_TOOL_LAYER); | ||||
| 
 | ||||
| 	return si; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Pedro J. Estébanez
						Pedro J. Estébanez