diff --git a/gfx/shader_cg.c b/gfx/shader_cg.c index 5fb5a3ed70..8d954aaa0d 100644 --- a/gfx/shader_cg.c +++ b/gfx/shader_cg.c @@ -420,6 +420,8 @@ static bool load_imports(const char *dir_path, config_file_t *conf) tracker_type = SSNES_STATE_CAPTURE; else if (strcmp(semantic, "transition") == 0) tracker_type = SSNES_STATE_TRANSITION; + else if (strcmp(semantic, "transition_count") == 0) + tracker_type = SSNES_STATE_TRANSITION_COUNT; else if (strcmp(semantic, "capture_previous") == 0) tracker_type = SSNES_STATE_CAPTURE_PREV; else if (strcmp(semantic, "transition_previous") == 0) diff --git a/gfx/shader_glsl.c b/gfx/shader_glsl.c index e990162a06..51762b731d 100644 --- a/gfx/shader_glsl.c +++ b/gfx/shader_glsl.c @@ -441,6 +441,8 @@ static bool get_import_value(const char *path, xmlNodePtr ptr) tracker_type = SSNES_STATE_CAPTURE_PREV; else if (strcmp((const char*)semantic, "transition") == 0) tracker_type = SSNES_STATE_TRANSITION; + else if (strcmp((const char*)semantic, "transition_count") == 0) + tracker_type = SSNES_STATE_TRANSITION_COUNT; else if (strcmp((const char*)semantic, "transition_previous") == 0) tracker_type = SSNES_STATE_TRANSITION_PREV; #ifdef HAVE_PYTHON diff --git a/gfx/snes_state.c b/gfx/snes_state.c index 01236ce79c..187a7a5ea0 100644 --- a/gfx/snes_state.c +++ b/gfx/snes_state.c @@ -42,7 +42,7 @@ struct snes_tracker_internal uint8_t prev[2]; int frame_count; uint8_t old_value; - + int transition_count; }; struct snes_tracker @@ -160,6 +160,15 @@ static void update_element( uniform->value = info->frame_count; break; + case SSNES_STATE_TRANSITION_COUNT: + if (info->old_value != fetch()) + { + info->old_value = fetch(); + info->transition_count++; + } + uniform->value = info->transition_count; + break; + case SSNES_STATE_TRANSITION_PREV: if (info->prev[0] != fetch()) { diff --git a/gfx/snes_state.h b/gfx/snes_state.h index 4735cecf45..dd615cd685 100644 --- a/gfx/snes_state.h +++ b/gfx/snes_state.h @@ -27,8 +27,9 @@ enum snes_tracker_type { SSNES_STATE_CAPTURE, - SSNES_STATE_TRANSITION, SSNES_STATE_CAPTURE_PREV, + SSNES_STATE_TRANSITION, + SSNES_STATE_TRANSITION_COUNT, SSNES_STATE_TRANSITION_PREV, #ifdef HAVE_PYTHON SSNES_STATE_PYTHON