@@ -24,6 +24,7 @@ theme_t *gTheme;
2424static int screenWidth ;
2525static int screenHeight ;
2626static int guiThemeID = 0 ;
27+ static int gMmceMainPageBrowseOnly = 0 ;
2728
2829static int nThemes = 0 ;
2930static theme_file_t themes [THM_MAX_FILES ];
@@ -480,6 +481,8 @@ static mutable_image_t *initMutableImage(const char *themePath, config_set_t *th
480481 configGetStr (themeConfig , elemProp , & cachePattern );
481482 snprintf (elemProp , sizeof (elemProp ), "%s_count" , name );
482483 configGetInt (themeConfig , elemProp , & cacheCount );
484+ if (cachePattern != NULL && strcmp (cachePattern , "COV" ) == 0 && cacheCount < 2 )
485+ cacheCount = 2 ;
483486 LOG ("THEMES MutableImage %s: type: %s using cache pattern: %s count: %d\n" , name , elementsType [type ], cachePattern , cacheCount );
484487 }
485488
@@ -554,6 +557,11 @@ static GSTEXTURE *getGameImageTexture(image_cache_t *cache, void *support, struc
554557 return NULL ;
555558}
556559
560+ void thmSetMmceMainPageBrowseOnly (int enabled )
561+ {
562+ gMmceMainPageBrowseOnly = enabled ;
563+ }
564+
557565static int canPrefetchAdjacentGameImages (image_cache_t * cache , item_list_t * list , GSTEXTURE * selectedTexture )
558566{
559567 if (cache == NULL || list == NULL || selectedTexture == NULL || selectedTexture -> Mem == NULL )
@@ -610,9 +618,15 @@ static void drawGameImage(struct menu_list *menu, struct submenu_list *item, con
610618 mutable_image_t * gameImage = (mutable_image_t * )elem -> extended ;
611619 if (item ) {
612620 item_list_t * list ;
613- GSTEXTURE * texture = getGameImageTexture ( gameImage -> cache , menu -> item -> userdata , & item -> item ) ;
621+ GSTEXTURE * texture ;
614622 list = (item_list_t * )menu -> item -> userdata ;
615623
624+ if (list != NULL && list -> mode == MMCE_MODE && gMmceMainPageBrowseOnly && gameImage -> cache != NULL &&
625+ gameImage -> cache -> suffix != NULL && strcmp (gameImage -> cache -> suffix , "COV" ) != 0 ) {
626+ texture = cacheGetTextureIfReady (gameImage -> cache , & item -> item .cache_id [gameImage -> cache -> userId ], & item -> item .cache_uid [gameImage -> cache -> userId ]);
627+ } else
628+ texture = getGameImageTexture (gameImage -> cache , menu -> item -> userdata , & item -> item );
629+
616630 if (gameImage -> cache != NULL && gameImage -> cache -> suffix != NULL && strcmp (gameImage -> cache -> suffix , "COV" ) == 0 &&
617631 canPrefetchAdjacentGameImages (gameImage -> cache , list , texture )) {
618632 int prefetchInactiveFrames = (list != NULL && list -> mode == APP_MODE ) ? APP_PREFETCH_IDLE_FRAMES : MENU_MIN_INACTIVE_FRAMES ;
@@ -1180,8 +1194,6 @@ static void clampSelectedCoverCaches(theme_t *theme, theme_elems_t *elems)
11801194 if (gameImage != NULL && gameImage -> cache != NULL && gameImage -> cache -> suffix != NULL && strcmp (gameImage -> cache -> suffix , "COV" ) == 0 &&
11811195 !isDecoratorCoverCache (theme -> gamesItemsList , gameImage -> cache ) && !isDecoratorCoverCache (theme -> appsItemsList , gameImage -> cache )) {
11821196 gameImage -> cache -> allowPrime = 0 ;
1183- if (gameImage -> cache -> count < 2 )
1184- gameImage -> cache -> count = 2 ;
11851197 }
11861198 }
11871199
0 commit comments