|
@@ -2353,7 +2353,7 @@ bool ShaderLanguage::is_sampler_type(DataType p_type) {
|
|
|
p_type == TYPE_SAMPLERCUBE;
|
|
|
}
|
|
|
|
|
|
-Variant ShaderLanguage::constant_value_to_variant(const Vector<ShaderLanguage::ConstantNode::Value> &p_value, DataType p_type) {
|
|
|
+Variant ShaderLanguage::constant_value_to_variant(const Vector<ShaderLanguage::ConstantNode::Value> &p_value, DataType p_type, ShaderLanguage::ShaderNode::Uniform::Hint p_hint) {
|
|
|
if (p_value.size() > 0) {
|
|
|
Variant value;
|
|
|
switch (p_type) {
|
|
@@ -2397,7 +2397,11 @@ Variant ShaderLanguage::constant_value_to_variant(const Vector<ShaderLanguage::C
|
|
|
value = Variant(Vector3(p_value[0].real, p_value[1].real, p_value[2].real));
|
|
|
break;
|
|
|
case ShaderLanguage::TYPE_VEC4:
|
|
|
- value = Variant(Plane(p_value[0].real, p_value[1].real, p_value[2].real, p_value[3].real));
|
|
|
+ if (p_hint == ShaderLanguage::ShaderNode::Uniform::HINT_COLOR) {
|
|
|
+ value = Variant(Color(p_value[0].real, p_value[1].real, p_value[2].real, p_value[3].real));
|
|
|
+ } else {
|
|
|
+ value = Variant(Plane(p_value[0].real, p_value[1].real, p_value[2].real, p_value[3].real));
|
|
|
+ }
|
|
|
break;
|
|
|
case ShaderLanguage::TYPE_MAT2:
|
|
|
value = Variant(Transform2D(p_value[0].real, p_value[2].real, p_value[1].real, p_value[3].real, 0.0, 0.0));
|