Thumbnail aspect ratio fix (#14145)

This commit is contained in:
sonninnos 2022-07-05 13:01:21 +03:00 committed by GitHub
parent 9dd1fb895b
commit 494c93df3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 10 deletions

View File

@ -415,6 +415,7 @@ void gfx_thumbnail_reset(gfx_thumbnail_t *thumbnail)
thumbnail->alpha = 0.0f;
thumbnail->delay_timer = 0.0f;
thumbnail->fade_active = false;
thumbnail->core_aspect = false;
}
/* Stream processing */
@ -810,20 +811,26 @@ void gfx_thumbnail_get_draw_dimensions(
{
*draw_width = (float)width;
*draw_height = (float)thumbnail->height * (*draw_width / (float)thumbnail->width);
*draw_height = *draw_height * (thumbnail_aspect / core_aspect);
if (*draw_height > height)
if (thumbnail->core_aspect)
{
*draw_height = (float)height;
*draw_width = (float)thumbnail->width * (*draw_height / (float)thumbnail->height);
*draw_width = *draw_width / (thumbnail_aspect / core_aspect);
*draw_height = *draw_height * (thumbnail_aspect / core_aspect);
if (*draw_height > height)
{
*draw_height = (float)height;
*draw_width = (float)thumbnail->width * (*draw_height / (float)thumbnail->height);
*draw_width = *draw_width / (thumbnail_aspect / core_aspect);
}
}
}
else
{
*draw_height = (float)height;
*draw_width = (float)thumbnail->width * (*draw_height / (float)thumbnail->height);
*draw_width = *draw_width / (thumbnail_aspect / core_aspect);
if (thumbnail->core_aspect)
*draw_width = *draw_width / (thumbnail_aspect / core_aspect);
}
/* Account for scale factor

View File

@ -3397,8 +3397,6 @@ static void ozone_update_savestate_thumbnail_image(void *data)
if (!((ozone->is_quick_menu || ozone->is_state_slot) && ozone->libretro_running))
return;
ozone->thumbnails.savestate.core_aspect = true;
/* If path is empty, just reset thumbnail */
if (string_is_empty(ozone->savestate_thumbnail_file_path))
gfx_thumbnail_reset(&ozone->thumbnails.savestate);
@ -3416,6 +3414,8 @@ static void ozone_update_savestate_thumbnail_image(void *data)
thumbnail_upscale_threshold);
}
}
ozone->thumbnails.savestate.core_aspect = true;
}
static void ozone_entries_update_thumbnail_bar(

View File

@ -1432,8 +1432,6 @@ static void xmb_update_savestate_thumbnail_image(void *data)
if (!((xmb->is_quick_menu || xmb->is_state_slot) && xmb->libretro_running))
return;
xmb->thumbnails.savestate.core_aspect = true;
/* If path is empty, just reset thumbnail */
if (string_is_empty(xmb->savestate_thumbnail_file_path))
gfx_thumbnail_reset(&xmb->thumbnails.savestate);
@ -1449,6 +1447,8 @@ static void xmb_update_savestate_thumbnail_image(void *data)
&xmb->thumbnails.savestate,
thumbnail_upscale_threshold);
}
xmb->thumbnails.savestate.core_aspect = true;
}
/* Is called when the pointer position changes within a list/sub-list (vertically) */