Skip to content

Commit

Permalink
Merge pull request #87356 from jsjtxietian/connection-error
Browse files Browse the repository at this point in the history
Check if the ref shader is valid in visual shader's `_update_option_menu`
  • Loading branch information
akien-mga committed Jan 26, 2024
2 parents cd5e973 + ff089f8 commit c26a338
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 1 deletion.
2 changes: 1 addition & 1 deletion editor/plugins/visual_shader_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1791,7 +1791,7 @@ void VisualShaderEditor::_update_options_menu() {
}

Ref<VisualShaderNodeParameterRef> parameter_ref = Object::cast_to<VisualShaderNodeParameterRef>(vsn.ptr());
if (parameter_ref.is_valid()) {
if (parameter_ref.is_valid() && parameter_ref->is_shader_valid()) {
check_result = -1;

if (members_input_port_type != VisualShaderNode::PORT_TYPE_MAX) {
Expand Down
4 changes: 4 additions & 0 deletions scene/resources/visual_shader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3591,6 +3591,10 @@ String VisualShaderNodeParameterRef::get_output_port_name(int p_port) const {
return "";
}

bool VisualShaderNodeParameterRef::is_shader_valid() const {
return shader_rid.is_valid();
}

void VisualShaderNodeParameterRef::set_shader_rid(const RID &p_shader_rid) {
shader_rid = p_shader_rid;
}
Expand Down
1 change: 1 addition & 0 deletions scene/resources/visual_shader.h
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,7 @@ class VisualShaderNodeParameterRef : public VisualShaderNode {
virtual PortType get_output_port_type(int p_port) const override;
virtual String get_output_port_name(int p_port) const override;

bool is_shader_valid() const;
void set_shader_rid(const RID &p_shader);

void set_parameter_name(const String &p_name);
Expand Down

0 comments on commit c26a338

Please sign in to comment.