mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/fx: Add a helper to print literals.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
committed by
Henri Verbeet
parent
b098af3ef8
commit
d403705de9
Notes:
Henri Verbeet
2025-06-11 20:37:36 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1559
@@ -4901,6 +4901,11 @@ static void fx_parse_fxlc_argument(struct fx_parser *parser, struct fxlc_arg *ar
|
|||||||
arg->address = fxlvm_read_u32(code);
|
arg->address = fxlvm_read_u32(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void fx_print_fxlc_literal(struct fx_parser *parser, uint32_t address, struct fxlvm_code *code)
|
||||||
|
{
|
||||||
|
vkd3d_string_buffer_print_f32(&parser->buffer, code->cli._4[address]);
|
||||||
|
}
|
||||||
|
|
||||||
static void fx_print_fxlc_argument(struct fx_parser *parser, const struct fxlc_arg *arg, struct fxlvm_code *code)
|
static void fx_print_fxlc_argument(struct fx_parser *parser, const struct fxlc_arg *arg, struct fxlvm_code *code)
|
||||||
{
|
{
|
||||||
uint32_t count;
|
uint32_t count;
|
||||||
@@ -4917,11 +4922,11 @@ static void fx_print_fxlc_argument(struct fx_parser *parser, const struct fxlc_a
|
|||||||
}
|
}
|
||||||
|
|
||||||
vkd3d_string_buffer_printf(&parser->buffer, "(");
|
vkd3d_string_buffer_printf(&parser->buffer, "(");
|
||||||
vkd3d_string_buffer_print_f32(&parser->buffer, code->cli._4[arg->address]);
|
fx_print_fxlc_literal(parser, arg->address, code);
|
||||||
for (unsigned int i = 1; i < code->comp_count; ++i)
|
for (unsigned int i = 1; i < code->comp_count; ++i)
|
||||||
{
|
{
|
||||||
vkd3d_string_buffer_printf(&parser->buffer, ", ");
|
vkd3d_string_buffer_printf(&parser->buffer, ", ");
|
||||||
vkd3d_string_buffer_print_f32(&parser->buffer, code->cli._4[arg->address + (code->scalar ? 0 : i)]);
|
fx_print_fxlc_literal(parser, arg->address + (code->scalar ? 0 : i), code);
|
||||||
}
|
}
|
||||||
vkd3d_string_buffer_printf(&parser->buffer, ")");
|
vkd3d_string_buffer_printf(&parser->buffer, ")");
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user