소스 검색

Merge pull request #93385 from Chaosus/vs_fix_updating

Fix visual shader not being updated when switching tabs
Rémi Verschelde 1 년 전
부모
커밋
acb9a4e6ad
3개의 변경된 파일13개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      editor/plugins/shader_editor_plugin.cpp
  2. 6 0
      editor/plugins/visual_shader_editor_plugin.cpp
  3. 2 0
      editor/plugins/visual_shader_editor_plugin.h

+ 5 - 0
editor/plugins/shader_editor_plugin.cpp

@@ -365,6 +365,11 @@ void ShaderEditorPlugin::_shader_selected(int p_index) {
 	if (edited_shaders[p_index].shader_editor) {
 		edited_shaders[p_index].shader_editor->validate_script();
 	}
+
+	if (edited_shaders[p_index].visual_shader_editor) {
+		edited_shaders[p_index].visual_shader_editor->validate_script();
+	}
+
 	shader_tabs->set_current_tab(p_index);
 	shader_list->select(p_index);
 }

+ 6 - 0
editor/plugins/visual_shader_editor_plugin.cpp

@@ -1545,6 +1545,12 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) {
 	}
 }
 
+void VisualShaderEditor::validate_script() {
+	if (visual_shader.is_valid()) {
+		_update_nodes();
+	}
+}
+
 void VisualShaderEditor::add_plugin(const Ref<VisualShaderNodePlugin> &p_plugin) {
 	if (plugins.has(p_plugin)) {
 		return;

+ 2 - 0
editor/plugins/visual_shader_editor_plugin.h

@@ -612,6 +612,8 @@ public:
 	void edit(VisualShader *p_visual_shader);
 	Ref<VisualShader> get_visual_shader() const { return visual_shader; }
 
+	void validate_script();
+
 	VisualShaderEditor();
 };