Create OVERLAY_STATUS_DEFERRED_LOADING_IMAGE

This commit is contained in:
twinaphex 2015-02-21 22:00:12 +01:00
parent d349b2a37a
commit 0595189fab
3 changed files with 39 additions and 1 deletions

View File

@ -561,6 +561,38 @@ error:
return false;
}
bool input_overlay_load_overlays_image_iterate(input_overlay_t *ol)
{
bool not_done = true;
if (!ol)
return false;
not_done = ol->pos < ol->size;
if (!not_done)
{
ol->pos = 0;
ol->state = OVERLAY_STATUS_DEFERRED_LOADING_RESOLVE;
return true;
}
if (!input_overlay_load_overlay_image(ol, ol->conf,
ol->overlay_path, &ol->overlays[ol->pos], ol->pos))
{
RARCH_ERR("[Overlay]: Failed to load overlay image #%u.\n", (unsigned)ol->pos);
goto error;
}
ol->state = OVERLAY_STATUS_DEFERRED_LOADING;
return true;
error:
ol->state = OVERLAY_STATUS_DEFERRED_ERROR;
return false;
}
bool input_overlay_load_overlays_iterate(input_overlay_t *ol)
{
bool not_done = true;
@ -631,7 +663,7 @@ bool input_overlay_load_overlays(input_overlay_t *ol)
ol->size = overlays;
ol->pos = 0;
ol->state = OVERLAY_STATUS_DEFERRED_LOADING;
ol->state = OVERLAY_STATUS_DEFERRED_LOADING_IMAGE;
return true;

View File

@ -72,6 +72,7 @@ enum overlay_status
{
OVERLAY_STATUS_NONE = 0,
OVERLAY_STATUS_DEFERRED_LOAD,
OVERLAY_STATUS_DEFERRED_LOADING_IMAGE,
OVERLAY_STATUS_DEFERRED_LOADING,
OVERLAY_STATUS_DEFERRED_LOADING_RESOLVE,
OVERLAY_STATUS_DEFERRED_DONE,
@ -182,6 +183,8 @@ input_overlay_t *input_overlay_new(const char *path, bool enable,
bool input_overlay_load_overlays(input_overlay_t *ol);
bool input_overlay_load_overlays_image_iterate(input_overlay_t *ol);
bool input_overlay_load_overlays_iterate(input_overlay_t *ol);
bool input_overlay_load_overlays_resolve_iterate(input_overlay_t *ol);

View File

@ -1024,6 +1024,9 @@ void rarch_main_iterate_overlay_state(void)
case OVERLAY_STATUS_DEFERRED_LOAD:
input_overlay_load_overlays(driver.overlay);
break;
case OVERLAY_STATUS_DEFERRED_LOADING_IMAGE:
input_overlay_load_overlays_image_iterate(driver.overlay);
break;
case OVERLAY_STATUS_DEFERRED_LOADING:
input_overlay_load_overlays_iterate(driver.overlay);
break;