1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00

Prevents TextureUniform in visual shaders from conversion to constant

This commit is contained in:
Yuri Roubinsky
2021-04-04 15:09:29 +03:00
parent cbf5408685
commit 44af52d62c
4 changed files with 37 additions and 1 deletions

View File

@@ -2627,7 +2627,7 @@ void VisualShaderEditor::_graph_gui_input(const Ref<InputEvent> &p_event) {
selected_constants.insert(id); selected_constants.insert(id);
} }
VisualShaderNodeUniform *uniform_node = Object::cast_to<VisualShaderNodeUniform>(node.ptr()); VisualShaderNodeUniform *uniform_node = Object::cast_to<VisualShaderNodeUniform>(node.ptr());
if (uniform_node != nullptr) { if (uniform_node != nullptr && uniform_node->is_convertible_to_constant()) {
selected_uniforms.insert(id); selected_uniforms.insert(id);
} }
} }

View File

@@ -421,6 +421,7 @@ public:
bool is_global_code_generated() const; bool is_global_code_generated() const;
virtual bool is_qualifier_supported(Qualifier p_qual) const = 0; virtual bool is_qualifier_supported(Qualifier p_qual) const = 0;
virtual bool is_convertible_to_constant() const = 0;
virtual Vector<StringName> get_editable_properties() const override; virtual Vector<StringName> get_editable_properties() const override;
virtual String get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const override; virtual String get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const override;

View File

@@ -3744,6 +3744,10 @@ bool VisualShaderNodeFloatUniform::is_qualifier_supported(Qualifier p_qual) cons
return true; // all qualifiers are supported return true; // all qualifiers are supported
} }
bool VisualShaderNodeFloatUniform::is_convertible_to_constant() const {
return true; // conversion is allowed
}
Vector<StringName> VisualShaderNodeFloatUniform::get_editable_properties() const { Vector<StringName> VisualShaderNodeFloatUniform::get_editable_properties() const {
Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties(); Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties();
props.push_back("hint"); props.push_back("hint");
@@ -3911,6 +3915,10 @@ bool VisualShaderNodeIntUniform::is_qualifier_supported(Qualifier p_qual) const
return true; // all qualifiers are supported return true; // all qualifiers are supported
} }
bool VisualShaderNodeIntUniform::is_convertible_to_constant() const {
return true; // conversion is allowed
}
Vector<StringName> VisualShaderNodeIntUniform::get_editable_properties() const { Vector<StringName> VisualShaderNodeIntUniform::get_editable_properties() const {
Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties(); Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties();
props.push_back("hint"); props.push_back("hint");
@@ -4019,6 +4027,10 @@ bool VisualShaderNodeBooleanUniform::is_qualifier_supported(Qualifier p_qual) co
return true; // all qualifiers are supported return true; // all qualifiers are supported
} }
bool VisualShaderNodeBooleanUniform::is_convertible_to_constant() const {
return true; // conversion is allowed
}
Vector<StringName> VisualShaderNodeBooleanUniform::get_editable_properties() const { Vector<StringName> VisualShaderNodeBooleanUniform::get_editable_properties() const {
Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties(); Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties();
props.push_back("default_value_enabled"); props.push_back("default_value_enabled");
@@ -4113,6 +4125,10 @@ bool VisualShaderNodeColorUniform::is_qualifier_supported(Qualifier p_qual) cons
return true; // all qualifiers are supported return true; // all qualifiers are supported
} }
bool VisualShaderNodeColorUniform::is_convertible_to_constant() const {
return true; // conversion is allowed
}
Vector<StringName> VisualShaderNodeColorUniform::get_editable_properties() const { Vector<StringName> VisualShaderNodeColorUniform::get_editable_properties() const {
Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties(); Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties();
props.push_back("default_value_enabled"); props.push_back("default_value_enabled");
@@ -4209,6 +4225,10 @@ bool VisualShaderNodeVec3Uniform::is_qualifier_supported(Qualifier p_qual) const
return true; // all qualifiers are supported return true; // all qualifiers are supported
} }
bool VisualShaderNodeVec3Uniform::is_convertible_to_constant() const {
return true; // conversion is allowed
}
Vector<StringName> VisualShaderNodeVec3Uniform::get_editable_properties() const { Vector<StringName> VisualShaderNodeVec3Uniform::get_editable_properties() const {
Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties(); Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties();
props.push_back("default_value_enabled"); props.push_back("default_value_enabled");
@@ -4309,6 +4329,10 @@ bool VisualShaderNodeTransformUniform::is_qualifier_supported(Qualifier p_qual)
return true; // all qualifiers are supported return true; // all qualifiers are supported
} }
bool VisualShaderNodeTransformUniform::is_convertible_to_constant() const {
return true; // conversion is allowed
}
Vector<StringName> VisualShaderNodeTransformUniform::get_editable_properties() const { Vector<StringName> VisualShaderNodeTransformUniform::get_editable_properties() const {
Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties(); Vector<StringName> props = VisualShaderNodeUniform::get_editable_properties();
props.push_back("default_value_enabled"); props.push_back("default_value_enabled");
@@ -4494,6 +4518,10 @@ bool VisualShaderNodeTextureUniform::is_qualifier_supported(Qualifier p_qual) co
return false; return false;
} }
bool VisualShaderNodeTextureUniform::is_convertible_to_constant() const {
return false; // conversion is not allowed
}
VisualShaderNodeTextureUniform::VisualShaderNodeTextureUniform() { VisualShaderNodeTextureUniform::VisualShaderNodeTextureUniform() {
simple_decl = false; simple_decl = false;
} }

View File

@@ -1574,6 +1574,7 @@ public:
float get_default_value() const; float get_default_value() const;
bool is_qualifier_supported(Qualifier p_qual) const override; bool is_qualifier_supported(Qualifier p_qual) const override;
bool is_convertible_to_constant() const override;
virtual Vector<StringName> get_editable_properties() const override; virtual Vector<StringName> get_editable_properties() const override;
@@ -1639,6 +1640,7 @@ public:
int get_default_value() const; int get_default_value() const;
bool is_qualifier_supported(Qualifier p_qual) const override; bool is_qualifier_supported(Qualifier p_qual) const override;
bool is_convertible_to_constant() const override;
virtual Vector<StringName> get_editable_properties() const override; virtual Vector<StringName> get_editable_properties() const override;
@@ -1683,6 +1685,7 @@ public:
bool get_default_value() const; bool get_default_value() const;
bool is_qualifier_supported(Qualifier p_qual) const override; bool is_qualifier_supported(Qualifier p_qual) const override;
bool is_convertible_to_constant() const override;
virtual Vector<StringName> get_editable_properties() const override; virtual Vector<StringName> get_editable_properties() const override;
@@ -1724,6 +1727,7 @@ public:
Color get_default_value() const; Color get_default_value() const;
bool is_qualifier_supported(Qualifier p_qual) const override; bool is_qualifier_supported(Qualifier p_qual) const override;
bool is_convertible_to_constant() const override;
virtual Vector<StringName> get_editable_properties() const override; virtual Vector<StringName> get_editable_properties() const override;
@@ -1766,6 +1770,7 @@ public:
Vector3 get_default_value() const; Vector3 get_default_value() const;
bool is_qualifier_supported(Qualifier p_qual) const override; bool is_qualifier_supported(Qualifier p_qual) const override;
bool is_convertible_to_constant() const override;
virtual Vector<StringName> get_editable_properties() const override; virtual Vector<StringName> get_editable_properties() const override;
@@ -1808,6 +1813,7 @@ public:
Transform get_default_value() const; Transform get_default_value() const;
bool is_qualifier_supported(Qualifier p_qual) const override; bool is_qualifier_supported(Qualifier p_qual) const override;
bool is_convertible_to_constant() const override;
virtual Vector<StringName> get_editable_properties() const override; virtual Vector<StringName> get_editable_properties() const override;
@@ -1865,6 +1871,7 @@ public:
ColorDefault get_color_default() const; ColorDefault get_color_default() const;
bool is_qualifier_supported(Qualifier p_qual) const override; bool is_qualifier_supported(Qualifier p_qual) const override;
bool is_convertible_to_constant() const override;
VisualShaderNodeTextureUniform(); VisualShaderNodeTextureUniform();
}; };