mirror of
https://github.com/libretro/RetroArch
synced 2025-03-31 10:20:41 +00:00
Merge pull request #9845 from jdgleaver/ozone-thumb-tweaks
(Ozone) Minor thumbnail optimisations
This commit is contained in:
commit
127e07c210
@ -369,46 +369,50 @@ unsigned ozone_count_lines(const char *str)
|
|||||||
return lines;
|
return lines;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ozone_update_thumbnail_path(void *data, unsigned i, char pos)
|
|
||||||
{
|
|
||||||
ozone_handle_t *ozone = (ozone_handle_t*)data;
|
|
||||||
const char *core_name = NULL;
|
|
||||||
|
|
||||||
if (!ozone)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* imageviewer content requires special treatment... */
|
|
||||||
menu_thumbnail_get_core_name(ozone->thumbnail_path_data, &core_name);
|
|
||||||
if (string_is_equal(core_name, "imageviewer"))
|
|
||||||
{
|
|
||||||
if ((pos == 'R') || (pos == 'L' && !menu_thumbnail_is_enabled(ozone->thumbnail_path_data, MENU_THUMBNAIL_RIGHT)))
|
|
||||||
menu_thumbnail_update_path(ozone->thumbnail_path_data, pos == 'R' ? MENU_THUMBNAIL_RIGHT : MENU_THUMBNAIL_LEFT);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
menu_thumbnail_update_path(ozone->thumbnail_path_data, pos == 'R' ? MENU_THUMBNAIL_RIGHT : MENU_THUMBNAIL_LEFT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ozone_update_thumbnail_image(void *data)
|
static void ozone_update_thumbnail_image(void *data)
|
||||||
{
|
{
|
||||||
ozone_handle_t *ozone = (ozone_handle_t*)data;
|
ozone_handle_t *ozone = (ozone_handle_t*)data;
|
||||||
size_t selection = menu_navigation_get_selection();
|
size_t selection = menu_navigation_get_selection();
|
||||||
playlist_t *playlist = playlist_get_cached();
|
playlist_t *playlist = playlist_get_cached();
|
||||||
|
|
||||||
/* Right thumbnail */
|
if (!ozone)
|
||||||
menu_thumbnail_request(
|
return;
|
||||||
ozone->thumbnail_path_data,
|
|
||||||
MENU_THUMBNAIL_RIGHT,
|
|
||||||
playlist,
|
|
||||||
selection,
|
|
||||||
&ozone->thumbnails.right);
|
|
||||||
|
|
||||||
/* Left thumbnail */
|
menu_thumbnail_cancel_pending_requests();
|
||||||
menu_thumbnail_request(
|
|
||||||
ozone->thumbnail_path_data,
|
/* Image (and video/music) content requires special
|
||||||
MENU_THUMBNAIL_LEFT,
|
* treatment... */
|
||||||
playlist,
|
if (ozone->selection_core_is_viewer)
|
||||||
selection,
|
{
|
||||||
&ozone->thumbnails.left);
|
/* Only right thumbnail is loaded */
|
||||||
|
menu_thumbnail_request(
|
||||||
|
ozone->thumbnail_path_data,
|
||||||
|
MENU_THUMBNAIL_RIGHT,
|
||||||
|
playlist,
|
||||||
|
selection,
|
||||||
|
&ozone->thumbnails.right);
|
||||||
|
|
||||||
|
/* Left thumbnail is simply reset */
|
||||||
|
menu_thumbnail_reset(&ozone->thumbnails.left);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Right thumbnail */
|
||||||
|
menu_thumbnail_request(
|
||||||
|
ozone->thumbnail_path_data,
|
||||||
|
MENU_THUMBNAIL_RIGHT,
|
||||||
|
playlist,
|
||||||
|
selection,
|
||||||
|
&ozone->thumbnails.right);
|
||||||
|
|
||||||
|
/* Left thumbnail */
|
||||||
|
menu_thumbnail_request(
|
||||||
|
ozone->thumbnail_path_data,
|
||||||
|
MENU_THUMBNAIL_LEFT,
|
||||||
|
playlist,
|
||||||
|
selection,
|
||||||
|
&ozone->thumbnails.left);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ozone_refresh_thumbnail_image(void *data, unsigned i)
|
static void ozone_refresh_thumbnail_image(void *data, unsigned i)
|
||||||
@ -614,12 +618,6 @@ static void ozone_context_reset(void *data, bool is_threaded)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Thumbnails */
|
/* Thumbnails */
|
||||||
if (menu_thumbnail_is_enabled(ozone->thumbnail_path_data, MENU_THUMBNAIL_RIGHT))
|
|
||||||
ozone_update_thumbnail_path(ozone, 0, 'R');
|
|
||||||
|
|
||||||
if (menu_thumbnail_is_enabled(ozone->thumbnail_path_data, MENU_THUMBNAIL_LEFT))
|
|
||||||
ozone_update_thumbnail_path(ozone, 0, 'L');
|
|
||||||
|
|
||||||
ozone_update_thumbnail_image(ozone);
|
ozone_update_thumbnail_image(ozone);
|
||||||
|
|
||||||
/* TODO: update savestate thumbnail image */
|
/* TODO: update savestate thumbnail image */
|
||||||
@ -635,6 +633,17 @@ static void ozone_collapse_end(void *userdata)
|
|||||||
ozone->draw_sidebar = false;
|
ozone->draw_sidebar = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ozone_unload_thumbnail_textures(void *data)
|
||||||
|
{
|
||||||
|
ozone_handle_t *ozone = (ozone_handle_t*)data;
|
||||||
|
if (!ozone)
|
||||||
|
return;
|
||||||
|
|
||||||
|
menu_thumbnail_cancel_pending_requests();
|
||||||
|
menu_thumbnail_reset(&ozone->thumbnails.right);
|
||||||
|
menu_thumbnail_reset(&ozone->thumbnails.left);
|
||||||
|
}
|
||||||
|
|
||||||
static void ozone_context_destroy(void *data)
|
static void ozone_context_destroy(void *data)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
@ -660,8 +669,7 @@ static void ozone_context_destroy(void *data)
|
|||||||
video_driver_texture_unload(&ozone->tab_textures[i]);
|
video_driver_texture_unload(&ozone->tab_textures[i]);
|
||||||
|
|
||||||
/* Thumbnails */
|
/* Thumbnails */
|
||||||
menu_thumbnail_reset(&ozone->thumbnails.right);
|
ozone_unload_thumbnail_textures(ozone);
|
||||||
menu_thumbnail_reset(&ozone->thumbnails.left);
|
|
||||||
|
|
||||||
video_driver_texture_unload(&menu_display_white_texture);
|
video_driver_texture_unload(&menu_display_white_texture);
|
||||||
|
|
||||||
@ -1327,16 +1335,6 @@ static void ozone_set_thumbnail_content(void *data, const char *s)
|
|||||||
ozone_update_content_metadata(ozone);
|
ozone_update_content_metadata(ozone);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ozone_unload_thumbnail_textures(void *data)
|
|
||||||
{
|
|
||||||
ozone_handle_t *ozone = (ozone_handle_t*)data;
|
|
||||||
if (!ozone)
|
|
||||||
return;
|
|
||||||
|
|
||||||
menu_thumbnail_reset(&ozone->thumbnails.right);
|
|
||||||
menu_thumbnail_reset(&ozone->thumbnails.left);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ozone_set_thumbnail_system(void *data, char*s, size_t len)
|
static void ozone_set_thumbnail_system(void *data, char*s, size_t len)
|
||||||
{
|
{
|
||||||
ozone_handle_t *ozone = (ozone_handle_t*)data;
|
ozone_handle_t *ozone = (ozone_handle_t*)data;
|
||||||
@ -1419,15 +1417,7 @@ static void ozone_selection_changed(ozone_handle_t *ozone, bool allow_animation)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (update_thumbnails)
|
if (update_thumbnails)
|
||||||
{
|
|
||||||
if (menu_thumbnail_is_enabled(ozone->thumbnail_path_data, MENU_THUMBNAIL_RIGHT))
|
|
||||||
ozone_update_thumbnail_path(ozone, 0 /* will be ignored */, 'R');
|
|
||||||
|
|
||||||
if (menu_thumbnail_is_enabled(ozone->thumbnail_path_data, MENU_THUMBNAIL_LEFT))
|
|
||||||
ozone_update_thumbnail_path(ozone, 0 /* will be ignored */, 'L');
|
|
||||||
|
|
||||||
ozone_update_thumbnail_image(ozone);
|
ozone_update_thumbnail_image(ozone);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: update savestate thumbnail and path */
|
/* TODO: update savestate thumbnail and path */
|
||||||
@ -1805,13 +1795,6 @@ static void ozone_populate_entries(void *data, const char *path, const char *lab
|
|||||||
if (ozone->is_playlist)
|
if (ozone->is_playlist)
|
||||||
{
|
{
|
||||||
ozone_set_thumbnail_content(ozone, "");
|
ozone_set_thumbnail_content(ozone, "");
|
||||||
|
|
||||||
if (menu_thumbnail_is_enabled(ozone->thumbnail_path_data, MENU_THUMBNAIL_RIGHT))
|
|
||||||
ozone_update_thumbnail_path(ozone, 0 /* will be ignored */, 'R');
|
|
||||||
|
|
||||||
if (menu_thumbnail_is_enabled(ozone->thumbnail_path_data, MENU_THUMBNAIL_LEFT))
|
|
||||||
ozone_update_thumbnail_path(ozone, 0 /* will be ignored */, 'L');
|
|
||||||
|
|
||||||
ozone_update_thumbnail_image(ozone);
|
ozone_update_thumbnail_image(ozone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2308,7 +2291,7 @@ menu_ctx_driver_t menu_ctx_ozone = {
|
|||||||
NULL,
|
NULL,
|
||||||
"ozone",
|
"ozone",
|
||||||
ozone_environ_cb,
|
ozone_environ_cb,
|
||||||
ozone_update_thumbnail_path,
|
NULL,
|
||||||
ozone_update_thumbnail_image,
|
ozone_update_thumbnail_image,
|
||||||
ozone_refresh_thumbnail_image,
|
ozone_refresh_thumbnail_image,
|
||||||
ozone_set_thumbnail_system,
|
ozone_set_thumbnail_system,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user