vkd3d-shader/fx: Use vkd3d_string_buffer_print_f32() in parse_fx_4_numeric_value().

Instead of "%f". vkd3d_string_buffer_print_f32() will use sufficient
precision to represent the stored value exactly, and will use '.' as
decimal separator regardless of the current locale.
This commit is contained in:
Henri Verbeet
2025-02-24 16:07:04 +01:00
parent 2989373212
commit 58aed8fd0d
Notes: Henri Verbeet 2025-02-24 16:28:00 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1392

View File

@@ -3053,7 +3053,7 @@ static void parse_fx_4_numeric_value(struct fx_parser *parser, uint32_t offset,
fx_parser_read_unstructured(parser, &value, offset, sizeof(uint32_t));
if (base_type == FX_4_NUMERIC_TYPE_FLOAT)
vkd3d_string_buffer_printf(&parser->buffer, "%f", value.f);
vkd3d_string_buffer_print_f32(&parser->buffer, value.f);
else if (base_type == FX_4_NUMERIC_TYPE_INT)
vkd3d_string_buffer_printf(&parser->buffer, "%d", value.i);
else if (base_type == FX_4_NUMERIC_TYPE_UINT)