Check is the ref shader valid in visual shader's update_option_menu

This commit is contained in:
jsjtxietian 2024-01-19 12:32:44 +08:00
parent 6fea273ed3
commit ff089f8cea
3 changed files with 6 additions and 1 deletions

View file

@ -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) {

View file

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

View file

@ -640,6 +640,7 @@ public:
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);