Fixed how floats are printed to the GLSL shader, closes #19803

This commit is contained in:
Juan Linietsky 2018-11-19 23:41:18 -03:00
parent c500581d32
commit 78eae047c6
2 changed files with 11 additions and 9 deletions

View file

@ -86,10 +86,11 @@ static String _mkid(const String &p_id) {
static String f2sp0(float p_float) {
if (int(p_float) == p_float)
return itos(p_float) + ".0";
else
return rtoss(p_float);
String num = rtoss(p_float);
if (num.find(".") == -1 && num.find("e") == -1) {
num += ".0";
}
return num;
}
static String get_constant_text(SL::DataType p_type, const Vector<SL::ConstantNode::Value> &p_values) {

View file

@ -173,10 +173,11 @@ static String _mkid(const String &p_id) {
static String f2sp0(float p_float) {
if (int(p_float) == p_float)
return itos(p_float) + ".0";
else
return rtoss(p_float);
String num = rtoss(p_float);
if (num.find(".") == -1 && num.find("e") == -1) {
num += ".0";
}
return num;
}
static String get_constant_text(SL::DataType p_type, const Vector<SL::ConstantNode::Value> &p_values) {
@ -229,7 +230,7 @@ static String get_constant_text(SL::DataType p_type, const Vector<SL::ConstantNo
text += ")";
return text;
} break;
case SL::TYPE_FLOAT: return f2sp0(p_values[0].real) + "f";
case SL::TYPE_FLOAT: return f2sp0(p_values[0].real);
case SL::TYPE_VEC2:
case SL::TYPE_VEC3:
case SL::TYPE_VEC4: {