mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/fx: Use a switch in write_fx_2_initial_value().
This commit is contained in:
parent
6c6106f780
commit
280bea9033
Notes:
Alexandre Julliard
2024-04-11 17:04:58 -05:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/775
@ -733,7 +733,7 @@ static uint32_t write_fx_2_initial_value(const struct hlsl_ir_var *var, struct f
|
|||||||
{
|
{
|
||||||
struct vkd3d_bytecode_buffer *buffer = &fx->unstructured;
|
struct vkd3d_bytecode_buffer *buffer = &fx->unstructured;
|
||||||
const struct hlsl_type *type = var->data_type;
|
const struct hlsl_type *type = var->data_type;
|
||||||
uint32_t i, offset, size, elements_count = 1;
|
uint32_t offset, size, elements_count = 1;
|
||||||
|
|
||||||
size = get_fx_2_type_size(type);
|
size = get_fx_2_type_size(type);
|
||||||
|
|
||||||
@ -743,20 +743,27 @@ static uint32_t write_fx_2_initial_value(const struct hlsl_ir_var *var, struct f
|
|||||||
type = hlsl_get_multiarray_element_type(type);
|
type = hlsl_get_multiarray_element_type(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type->class == HLSL_CLASS_OBJECT)
|
/* Note that struct fields must all be numeric;
|
||||||
|
* this was validated in check_invalid_object_fields(). */
|
||||||
|
switch (type->class)
|
||||||
{
|
{
|
||||||
/* Objects are given sequential ids. */
|
case HLSL_CLASS_SCALAR:
|
||||||
offset = put_u32(buffer, fx->object_variable_count++);
|
case HLSL_CLASS_VECTOR:
|
||||||
for (i = 1; i < elements_count; ++i)
|
case HLSL_CLASS_MATRIX:
|
||||||
put_u32(buffer, fx->object_variable_count++);
|
case HLSL_CLASS_STRUCT:
|
||||||
}
|
/* FIXME: write actual initial value */
|
||||||
else
|
offset = put_u32(buffer, 0);
|
||||||
{
|
|
||||||
/* FIXME: write actual initial value */
|
|
||||||
offset = put_u32(buffer, 0);
|
|
||||||
|
|
||||||
for (i = 1; i < size / sizeof(uint32_t); ++i)
|
for (uint32_t i = 1; i < size / sizeof(uint32_t); ++i)
|
||||||
put_u32(buffer, 0);
|
put_u32(buffer, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
/* Objects are given sequential ids. */
|
||||||
|
offset = put_u32(buffer, fx->object_variable_count++);
|
||||||
|
for (uint32_t i = 1; i < elements_count; ++i)
|
||||||
|
put_u32(buffer, fx->object_variable_count++);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return offset;
|
return offset;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user