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.
This commit is contained in:
xutaxkamay 2022-06-08 14:32:41 +02:00 committed by Kamay Xutax
parent c09d830106
commit bcdfa89ca5
1 changed files with 10 additions and 9 deletions

View File

@ -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;