diff --git a/gfx/video_shader_parse.c b/gfx/video_shader_parse.c index 348c3d1c61..b0e9dfc5fd 100644 --- a/gfx/video_shader_parse.c +++ b/gfx/video_shader_parse.c @@ -39,23 +39,6 @@ #include "drivers_shader/slang_preprocess.h" #endif -#define WRAP_MODE_CLAMP_TO_BORDER 0x3676ed11U -#define WRAP_MODE_CLAMP_TO_EDGE 0x9427a608U -#define WRAP_MODE_REPEAT 0x192dec66U -#define WRAP_MODE_MIRRORED_REPEAT 0x117ac9a9U - -#define SCALE_TYPE_SOURCE 0x1c3aff76U -#define SCALE_TYPE_VIEWPORT 0xe8f01225U -#define SCALE_TYPE_ABSOLUTE 0x8cc74f64U - - -#define SEMANTIC_CAPTURE 0xb2f5d639U -#define SEMANTIC_CAPTURE_PREVIOUS 0x64d6d495U -#define SEMANTIC_TRANSITION 0x96486f70U -#define SEMANTIC_TRANSITION_PREVIOUS 0x536abbacU -#define SEMANTIC_TRANSITION_COUNT 0x3ef2af78U -#define SEMANTIC_PYTHON 0x15efc547U - static path_change_data_t *file_change_data = NULL; /** @@ -95,19 +78,14 @@ static const char *wrap_mode_to_str(enum gfx_wrap_type type) **/ static enum gfx_wrap_type wrap_str_to_mode(const char *wrap_mode) { - uint32_t wrap_mode_hash = djb2_calculate(wrap_mode); - - switch (wrap_mode_hash) - { - case WRAP_MODE_CLAMP_TO_BORDER: - return RARCH_WRAP_BORDER; - case WRAP_MODE_CLAMP_TO_EDGE: - return RARCH_WRAP_EDGE; - case WRAP_MODE_REPEAT: - return RARCH_WRAP_REPEAT; - case WRAP_MODE_MIRRORED_REPEAT: - return RARCH_WRAP_MIRRORED_REPEAT; - } + if (string_is_equal(wrap_mode, "clamp_to_border")) + return RARCH_WRAP_BORDER; + else if (string_is_equal(wrap_mode, "clamp_to_edge")) + return RARCH_WRAP_EDGE; + else if (string_is_equal(wrap_mode, "repeat")) + return RARCH_WRAP_REPEAT; + else if (string_is_equal(wrap_mode, "mirrored_repeat")) + return RARCH_WRAP_MIRRORED_REPEAT; RARCH_WARN("Invalid wrapping type %s. Valid ones are: clamp_to_border (default), clamp_to_edge, repeat and mirrored_repeat. Falling back to default.\n", wrap_mode); @@ -242,43 +220,31 @@ static bool video_shader_parse_pass(config_file_t *conf, if (*scale_type_x) { - uint32_t scale_type_x_hash = djb2_calculate(scale_type_x); - - switch (scale_type_x_hash) + if (string_is_equal(scale_type_x, "source")) + scale->type_x = RARCH_SCALE_INPUT; + else if (string_is_equal(scale_type_x, "viewport")) + scale->type_x = RARCH_SCALE_VIEWPORT; + else if (string_is_equal(scale_type_x, "absolute")) + scale->type_x = RARCH_SCALE_ABSOLUTE; + else { - case SCALE_TYPE_SOURCE: - scale->type_x = RARCH_SCALE_INPUT; - break; - case SCALE_TYPE_VIEWPORT: - scale->type_x = RARCH_SCALE_VIEWPORT; - break; - case SCALE_TYPE_ABSOLUTE: - scale->type_x = RARCH_SCALE_ABSOLUTE; - break; - default: - RARCH_ERR("Invalid attribute.\n"); - goto error; + RARCH_ERR("Invalid attribute.\n"); + goto error; } } if (*scale_type_y) { - uint32_t scale_type_y_hash = djb2_calculate(scale_type_y); - - switch (scale_type_y_hash) + if (string_is_equal(scale_type_y, "source")) + scale->type_y = RARCH_SCALE_INPUT; + else if (string_is_equal(scale_type_y, "viewport")) + scale->type_y = RARCH_SCALE_VIEWPORT; + else if (string_is_equal(scale_type_y, "absolute")) + scale->type_y = RARCH_SCALE_ABSOLUTE; + else { - case SCALE_TYPE_SOURCE: - scale->type_y = RARCH_SCALE_INPUT; - break; - case SCALE_TYPE_VIEWPORT: - scale->type_y = RARCH_SCALE_VIEWPORT; - break; - case SCALE_TYPE_ABSOLUTE: - scale->type_y = RARCH_SCALE_ABSOLUTE; - break; - default: - RARCH_ERR("Invalid attribute.\n"); - goto error; + RARCH_ERR("Invalid attribute.\n"); + goto error; } } @@ -619,7 +585,6 @@ static bool video_shader_parse_imports(config_file_t *conf, id && shader->variables < GFX_MAX_VARIABLES; shader->variables++, id = strtok_r(NULL, ";", &save)) { - uint32_t semantic_hash; char semantic_buf[64]; char wram_buf[64]; char input_slot_buf[64]; @@ -638,10 +603,6 @@ static bool video_shader_parse_imports(config_file_t *conf, strlcpy(var->id, id, sizeof(var->id)); snprintf(semantic_buf, sizeof(semantic_buf), "%s_semantic", id); - snprintf(wram_buf, sizeof(wram_buf), "%s_wram", id); - snprintf(input_slot_buf, sizeof(input_slot_buf), "%s_input_slot", id); - snprintf(mask_buf, sizeof(mask_buf), "%s_mask", id); - snprintf(equal_buf, sizeof(equal_buf), "%s_equal", id); if (!config_get_array(conf, semantic_buf, semantic, sizeof(semantic))) { @@ -649,34 +610,29 @@ static bool video_shader_parse_imports(config_file_t *conf, goto error; } - semantic_hash = djb2_calculate(semantic); + snprintf(wram_buf, sizeof(wram_buf), "%s_wram", id); + snprintf(input_slot_buf, sizeof(input_slot_buf), "%s_input_slot", id); + snprintf(mask_buf, sizeof(mask_buf), "%s_mask", id); + snprintf(equal_buf, sizeof(equal_buf), "%s_equal", id); - switch (semantic_hash) + if (string_is_equal(semantic, "capture")) + var->type = RARCH_STATE_CAPTURE; + else if (string_is_equal(semantic, "transition")) + var->type = RARCH_STATE_TRANSITION; + else if (string_is_equal(semantic, "transition_count")) + var->type = RARCH_STATE_TRANSITION_COUNT; + else if (string_is_equal(semantic, "capture_previous")) + var->type = RARCH_STATE_CAPTURE_PREV; + else if (string_is_equal(semantic, "transition_previous")) + var->type = RARCH_STATE_TRANSITION_PREV; + else if (string_is_equal(semantic, "python")) + var->type = RARCH_STATE_PYTHON; + else { - case SEMANTIC_CAPTURE: - var->type = RARCH_STATE_CAPTURE; - break; - case SEMANTIC_TRANSITION: - var->type = RARCH_STATE_TRANSITION; - break; - case SEMANTIC_TRANSITION_COUNT: - var->type = RARCH_STATE_TRANSITION_COUNT; - break; - case SEMANTIC_CAPTURE_PREVIOUS: - var->type = RARCH_STATE_CAPTURE_PREV; - break; - case SEMANTIC_TRANSITION_PREVIOUS: - var->type = RARCH_STATE_TRANSITION_PREV; - break; - case SEMANTIC_PYTHON: - var->type = RARCH_STATE_PYTHON; - break; - default: - RARCH_ERR("Invalid semantic.\n"); - goto error; + RARCH_ERR("Invalid semantic.\n"); + goto error; } - if (var->type != RARCH_STATE_PYTHON) { unsigned input_slot = 0;