2
0
mirror of https://github.com/godotengine/godot.git synced 2025-03-07 23:32:58 +08:00

Merge pull request from Chaosus/vs_fix_vec4_constant

Change `VisualShaderNodeVec4Constant` type to vec4
This commit is contained in:
Rémi Verschelde 2025-01-03 02:01:09 +01:00
commit 6c6e74408c
No known key found for this signature in database
GPG Key ID: C3336907360768E1
3 changed files with 19 additions and 5 deletions

View File

@ -315,8 +315,8 @@ void VisualShaderGraphPlugin::set_input_port_default_value(VisualShader::Type p_
Vector3 v = p_value;
button->set_text(String::num(v.x, 3) + "," + String::num(v.y, 3) + "," + String::num(v.z, 3));
} break;
case Variant::QUATERNION: {
Quaternion v = p_value;
case Variant::VECTOR4: {
Vector4 v = p_value;
button->set_text(String::num(v.x, 3) + "," + String::num(v.y, 3) + "," + String::num(v.z, 3) + "," + String::num(v.w, 3));
} break;
default: {
@ -3295,7 +3295,6 @@ void VisualShaderEditor::_edit_port_default_input(Object *p_button, int p_node,
popup_pref_size.width = 320;
break;
case Variant::VECTOR4:
case Variant::QUATERNION:
case Variant::PLANE:
case Variant::TRANSFORM2D:
case Variant::TRANSFORM3D:
@ -7965,7 +7964,7 @@ Control *VisualShaderNodePluginDefault::create_editor(const Ref<Resource> &p_par
prop->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
} else if (Object::cast_to<EditorPropertyTransform3D>(prop) || Object::cast_to<EditorPropertyVector3>(prop)) {
prop->set_custom_minimum_size(Size2(250 * EDSCALE, 0));
} else if (Object::cast_to<EditorPropertyQuaternion>(prop)) {
} else if (Object::cast_to<EditorPropertyVector4>(prop)) {
prop->set_custom_minimum_size(Size2(320 * EDSCALE, 0));
} else if (Object::cast_to<EditorPropertyFloat>(prop)) {
prop->set_custom_minimum_size(Size2(100 * EDSCALE, 0));

View File

@ -580,9 +580,17 @@ Quaternion VisualShaderNodeVec4Constant::get_constant() const {
return constant;
}
void VisualShaderNodeVec4Constant::_set_constant_v4(const Vector4 &p_constant) {
set_constant(Quaternion(p_constant.x, p_constant.y, p_constant.z, p_constant.w));
}
Vector4 VisualShaderNodeVec4Constant::_get_constant_v4() const {
return Vector4(constant.x, constant.y, constant.z, constant.w);
}
Vector<StringName> VisualShaderNodeVec4Constant::get_editable_properties() const {
Vector<StringName> props;
props.push_back("constant");
props.push_back("constant_v4");
return props;
}
@ -590,7 +598,11 @@ void VisualShaderNodeVec4Constant::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_constant", "constant"), &VisualShaderNodeVec4Constant::set_constant);
ClassDB::bind_method(D_METHOD("get_constant"), &VisualShaderNodeVec4Constant::get_constant);
ClassDB::bind_method(D_METHOD("_set_constant_v4", "constant"), &VisualShaderNodeVec4Constant::_set_constant_v4);
ClassDB::bind_method(D_METHOD("_get_constant_v4"), &VisualShaderNodeVec4Constant::_get_constant_v4);
ADD_PROPERTY(PropertyInfo(Variant::QUATERNION, "constant"), "set_constant", "get_constant");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR4, "constant_v4", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_INTERNAL), "_set_constant_v4", "_get_constant_v4");
}
VisualShaderNodeVec4Constant::VisualShaderNodeVec4Constant() {

View File

@ -341,6 +341,9 @@ public:
void set_constant(const Quaternion &p_constant);
Quaternion get_constant() const;
void _set_constant_v4(const Vector4 &p_constant);
Vector4 _get_constant_v4() const;
virtual Vector<StringName> get_editable_properties() const override;
VisualShaderNodeVec4Constant();