[PATCH vkd3d 5/8] vkd3d-compiler: Add get_source_type_info helper.
Isabella Bosia
ibosia at codeweavers.com
Mon Sep 7 06:35:44 CDT 2020
Signed-off-by: Isabella Bosia <ibosia at codeweavers.com>
---
programs/vkd3d-compiler/main.c | 38 ++++++++++++++++------------------
1 file changed, 18 insertions(+), 20 deletions(-)
diff --git a/programs/vkd3d-compiler/main.c b/programs/vkd3d-compiler/main.c
index 0461f4a..a5cf031 100644
--- a/programs/vkd3d-compiler/main.c
+++ b/programs/vkd3d-compiler/main.c
@@ -42,7 +42,7 @@ enum
OPTION_VERSION,
};
-static const struct
+static const struct source_type_info
{
enum vkd3d_shader_source_type type;
const char *name;
@@ -246,6 +246,17 @@ static enum vkd3d_shader_target_type parse_target_type(const char *target)
return VKD3D_SHADER_TARGET_NONE;
}
+static const struct source_type_info *get_source_type_info(enum vkd3d_shader_source_type type)
+{
+ unsigned int i;
+
+ for (i = 0; i < ARRAY_SIZE(source_type_info); ++i)
+ if (type == source_type_info[i].type)
+ return &source_type_info[i];
+
+ return NULL;
+}
+
static const struct target_type_info *get_target_type_info(enum vkd3d_shader_target_type type)
{
unsigned int i;
@@ -349,38 +360,25 @@ static bool parse_command_line(int argc, char **argv, struct options *options)
static void print_source_types(void)
{
const enum vkd3d_shader_source_type *source_types;
- unsigned int count, i, j;
+ unsigned int count, i;
source_types = vkd3d_shader_get_supported_source_types(&count);
fputs("Supported source types:\n", stdout);
for (i = 0; i < count; ++i)
{
- for (j = 0; j < ARRAY_SIZE(source_type_info); ++j)
- {
- if (source_types[i] == source_type_info[j].type)
- {
- fprintf(stdout, " %s %s\n", source_type_info[j].name, source_type_info[j].description);
- break;
- }
- }
+ const struct source_type_info *type = get_source_type_info(source_types[i]);
+ if (type)
+ fprintf(stdout, " %s %s", type->name, type->description);
}
+
}
static void print_target_types(enum vkd3d_shader_source_type source_type)
{
const enum vkd3d_shader_target_type *target_types;
- const char *source_type_name;
+ const char *source_type_name = get_source_type_info(source_type)->name;
unsigned int count, i;
- for (i = 0; i < ARRAY_SIZE(source_type_info); ++i)
- {
- if (source_type == source_type_info[i].type)
- {
- source_type_name = source_type_info[i].name;
- break;
- }
- }
-
target_types = vkd3d_shader_get_supported_target_types(source_type, &count);
fprintf(stdout, "Supported target types for source type '%s':\n", source_type_name);
for (i = 0; i < count; ++i)
--
2.25.1
More information about the wine-devel
mailing list