diff --git a/libs/video/renderer/vulkan/vkgen/vkenum.r b/libs/video/renderer/vulkan/vkgen/vkenum.r index 234c99b61..9f12c013e 100644 --- a/libs/video/renderer/vulkan/vkgen/vkenum.r +++ b/libs/video/renderer/vulkan/vkgen/vkenum.r @@ -120,6 +120,24 @@ skip_value(string name) fprintf (output_file, "\t&%s_symtab,\n", [self name]); fprintf (output_file, "};\n"); + fprintf (output_file, "static plfield_t %s_field = { 0, 0, QFString," + " parse_enum, &%s_enum};\n", + [self name], [self name]); + fprintf (output_file, "int parse_%s (const plfield_t *field," + " const plitem_t *item, void *data, plitem_t *messages," + " void *context)\n", + [self name]); + fprintf (output_file, "{\n"); + fprintf (output_file, + "\treturn parse_enum (&%s_field, item, data, messages," + " context);\n", + [self name]); + fprintf (output_file, "}\n"); + + fprintf (header_file, "int parse_%s (const plfield_t *field," + " const plitem_t *item, void *data, plitem_t *messages," + " void *context);\n", + [self name]); fprintf (header_file, "extern exprenum_t %s_enum;\n", [self name]); } diff --git a/libs/video/renderer/vulkan/vkgen/vkstruct.r b/libs/video/renderer/vulkan/vkgen/vkstruct.r index 761cbdade..ac03d8f41 100644 --- a/libs/video/renderer/vulkan/vkgen/vkstruct.r +++ b/libs/video/renderer/vulkan/vkgen/vkstruct.r @@ -175,7 +175,7 @@ -(string) cexprType { - return [self name] + "_type"; + return [self outname] + "_type"; } -(string) parseType @@ -185,7 +185,7 @@ -(string) parseFunc { - return "fix me"; + return "parse_" + [self outname]; } -(string) parseData diff --git a/libs/video/renderer/vulkan/vkgen/vktype.r b/libs/video/renderer/vulkan/vkgen/vktype.r index fbe44e350..735e88339 100644 --- a/libs/video/renderer/vulkan/vkgen/vktype.r +++ b/libs/video/renderer/vulkan/vkgen/vktype.r @@ -75,6 +75,9 @@ static string get_type_key (void *type, void *unused) -(string) name { if (type.meta == ty_basic) { + if (type.type == ev_integer) { + return "int"; + } return pr_type_name[type.type]; } //FIXME extract alias name and return proper type name @@ -118,6 +121,9 @@ static string get_type_key (void *type, void *unused) -(string) parseData { if (type.meta == ty_basic) { + if (type.type == ev_integer) { + return "&cexpr_int"; + } return "&cexpr_" + pr_type_name[type.type]; } return "0";