mirror of
https://github.com/CTCaer/RetroArch.git
synced 2024-12-22 10:49:02 +00:00
Add OVERLAY_IMAGE_TRANSFER_DESC_ITERATE and OVERLAY_IMAGE_TRANSFER_DESC_DONE
This commit is contained in:
parent
d44ebefd49
commit
89685c5709
@ -364,32 +364,31 @@ static bool input_overlay_load_overlay(input_overlay_t *ol,
|
|||||||
struct overlay *overlay, unsigned idx)
|
struct overlay *overlay, unsigned idx)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
bool not_done = overlay->pos < overlay->size;
|
||||||
|
|
||||||
for (i = 0; i < overlay->size; i++)
|
if (!not_done)
|
||||||
{
|
{
|
||||||
if (!input_overlay_load_desc(ol, &overlay->descs[i], idx, i,
|
overlay->pos = 0;
|
||||||
overlay->image.width, overlay->image.height,
|
ol->loading_status = OVERLAY_IMAGE_TRANSFER_DESC_DONE;
|
||||||
overlay->config.normalized,
|
return true;
|
||||||
overlay->config.alpha_mod, overlay->config.range_mod))
|
|
||||||
{
|
|
||||||
RARCH_ERR("[Overlay]: Failed to load overlay descs for overlay #%u.\n",
|
|
||||||
(unsigned)i);
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overlay->image.pixels)
|
if (!input_overlay_load_desc(ol, &overlay->descs[overlay->pos], idx, overlay->pos,
|
||||||
overlay->load_images[overlay->load_images_size++] = overlay->image;
|
overlay->image.width, overlay->image.height,
|
||||||
|
overlay->config.normalized,
|
||||||
for (i = 0; i < overlay->size; i++)
|
overlay->config.alpha_mod, overlay->config.range_mod))
|
||||||
{
|
{
|
||||||
if (!overlay->descs[i].image.pixels)
|
RARCH_ERR("[Overlay]: Failed to load overlay descs for overlay #%u.\n",
|
||||||
continue;
|
(unsigned)overlay->pos);
|
||||||
|
goto error;
|
||||||
overlay->descs[i].image_index = overlay->load_images_size;
|
|
||||||
overlay->load_images[overlay->load_images_size++] = overlay->descs[i].image;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (overlay->descs[overlay->pos].image.pixels)
|
||||||
|
{
|
||||||
|
overlay->descs[overlay->pos].image_index = overlay->load_images_size;
|
||||||
|
overlay->load_images[overlay->load_images_size++] = overlay->descs[overlay->pos].image;
|
||||||
|
}
|
||||||
|
overlay->pos++;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -479,6 +478,16 @@ error:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bool input_overlay_load_overlay_image_done(struct overlay *overlay)
|
||||||
|
{
|
||||||
|
if (overlay->image.pixels)
|
||||||
|
overlay->load_images[overlay->load_images_size++] = overlay->image;
|
||||||
|
overlay->pos = 0;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool input_overlay_load_overlays_iterate(input_overlay_t *ol)
|
bool input_overlay_load_overlays_iterate(input_overlay_t *ol)
|
||||||
{
|
{
|
||||||
bool not_done = true;
|
bool not_done = true;
|
||||||
@ -507,13 +516,18 @@ bool input_overlay_load_overlays_iterate(input_overlay_t *ol)
|
|||||||
ol->loading_status = OVERLAY_IMAGE_TRANSFER_DONE;
|
ol->loading_status = OVERLAY_IMAGE_TRANSFER_DONE;
|
||||||
break;
|
break;
|
||||||
case OVERLAY_IMAGE_TRANSFER_DONE:
|
case OVERLAY_IMAGE_TRANSFER_DONE:
|
||||||
|
input_overlay_load_overlay_image_done(&ol->overlays[ol->pos]);
|
||||||
|
ol->loading_status = OVERLAY_IMAGE_TRANSFER_DESC_ITERATE;
|
||||||
|
break;
|
||||||
|
case OVERLAY_IMAGE_TRANSFER_DESC_ITERATE:
|
||||||
if (!input_overlay_load_overlay(ol,
|
if (!input_overlay_load_overlay(ol,
|
||||||
ol->overlay_path, &ol->overlays[ol->pos], ol->pos))
|
ol->overlay_path, &ol->overlays[ol->pos], ol->pos))
|
||||||
{
|
{
|
||||||
RARCH_ERR("[Overlay]: Failed to load overlay #%u.\n", (unsigned)ol->pos);
|
RARCH_ERR("[Overlay]: Failed to load overlay #%u.\n", (unsigned)ol->pos);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case OVERLAY_IMAGE_TRANSFER_DESC_DONE:
|
||||||
ol->pos += 1;
|
ol->pos += 1;
|
||||||
ol->loading_status = OVERLAY_IMAGE_TRANSFER_NONE;
|
ol->loading_status = OVERLAY_IMAGE_TRANSFER_NONE;
|
||||||
break;
|
break;
|
||||||
|
@ -86,6 +86,8 @@ enum overlay_image_transfer_status
|
|||||||
OVERLAY_IMAGE_TRANSFER_NONE = 0,
|
OVERLAY_IMAGE_TRANSFER_NONE = 0,
|
||||||
OVERLAY_IMAGE_TRANSFER_BUSY,
|
OVERLAY_IMAGE_TRANSFER_BUSY,
|
||||||
OVERLAY_IMAGE_TRANSFER_DONE,
|
OVERLAY_IMAGE_TRANSFER_DONE,
|
||||||
|
OVERLAY_IMAGE_TRANSFER_DESC_ITERATE,
|
||||||
|
OVERLAY_IMAGE_TRANSFER_DESC_DONE,
|
||||||
OVERLAY_IMAGE_TRANSFER_ERROR,
|
OVERLAY_IMAGE_TRANSFER_ERROR,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -121,6 +123,7 @@ struct overlay
|
|||||||
{
|
{
|
||||||
struct overlay_desc *descs;
|
struct overlay_desc *descs;
|
||||||
size_t size;
|
size_t size;
|
||||||
|
size_t pos;
|
||||||
|
|
||||||
struct texture_image image;
|
struct texture_image image;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user