summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxutaxkamay <admin@xutaxkamay.com>2022-06-08 14:32:41 +0200
committerKamay Xutax <admin@xutaxkamay.com>2022-06-08 15:02:12 +0200
commitbcdfa89ca5aeb99e9535906085b886b9636a0f4a (patch)
tree61f1d1b789990db8cf3778c7e09625f8c699f7a9
parentc09d830106a7b1e48d4cff6b818cb3979d3bde21 (diff)
Fix (again) loading binary resources with float=64
I had an error while importing my GLB file from 32-bit precision floating point, I guess this was forgotten while implementing 64-bit precision floating point. I'm not sure if there's any other left to do though.
-rw-r--r--core/io/resource_format_binary.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp
index 24458f20b4..2469e1a4be 100644
--- a/core/io/resource_format_binary.cpp
+++ b/core/io/resource_format_binary.cpp
@@ -1547,10 +1547,11 @@ void ResourceFormatSaverBinaryInstance::write_variant(Ref<FileAccess> f, const V
case Variant::COLOR: {
f->store_32(VARIANT_COLOR);
Color val = p_property;
- f->store_real(val.r);
- f->store_real(val.g);
- f->store_real(val.b);
- f->store_real(val.a);
+ // Color are always floats
+ f->store_float(val.r);
+ f->store_float(val.g);
+ f->store_float(val.b);
+ f->store_float(val.a);
} break;
case Variant::STRING_NAME: {
@@ -1685,7 +1686,7 @@ void ResourceFormatSaverBinaryInstance::write_variant(Ref<FileAccess> f, const V
f->store_32(len);
const float *r = arr.ptr();
for (int i = 0; i < len; i++) {
- f->store_real(r[i]);
+ f->store_float(r[i]);
}
} break;
@@ -1743,10 +1744,10 @@ void ResourceFormatSaverBinaryInstance::write_variant(Ref<FileAccess> f, const V
f->store_32(len);
const Color *r = arr.ptr();
for (int i = 0; i < len; i++) {
- f->store_real(r[i].r);
- f->store_real(r[i].g);
- f->store_real(r[i].b);
- f->store_real(r[i].a);
+ f->store_float(r[i].r);
+ f->store_float(r[i].g);
+ f->store_float(r[i].b);
+ f->store_float(r[i].a);
}
} break;