diff --git a/CHANGELOG.md b/CHANGELOG.md index b1a68b695..a28dc42eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ * Added support for defining what type of image metadata to use for all image elements (and also for the video component static image) * Added a legacy (backward compatibility) mode for still supporting older RetroPie EmulationStation themes * Added theme support for Lottie animations (vector graphics) +* Replaced the forceUppercase theme property with a more versatile letterCase property (forceUppercase is retained for legacy theme compatibility) * Made it possible to set any text element as a scrollable container using either metadata values or literal strings * Made it possible to use almost all game metadata field when theming text elements * Added scraper support for displaying the returned platform if it does not match the game platform, or if multiple platforms are defined for the system @@ -28,11 +29,12 @@ * Added the ability to set a manual sortname specifically for custom collections using the metadata editor * When scraping in semi-automatic mode, horizontal scrolling of long game names are no longer reset when automatically selecting the result * Reduced CPU usage significantly when a menu is open by not rendering the bottom of the stack -* Reduced CPU usage by only rendering the currently visible system in SystemView +* Reduced CPU usage significantly by only rendering the necessary systems in SystemView * Added an OpenGL ES 2.0 renderer (borrowed from the RetroPie fork of EmulationStation) * Added logging of the display refresh rate on startup * Improved the theme loading error logging to make it consistent and easier to understand * Added a log warning for unthemed systems during theme set loading +* Changed the warning log level for missing theme files to debug level if the paths are set using variables * Added a color model conversion shader for converting from BGRA to RGBA * Added renderer support for supplying a separate format than internalFormat when creating textures (although not really supported by the OpenGL standard) * Added the rlottie library as a Git subtree @@ -63,6 +65,7 @@ * Changing some values using the metadata editor could lead to an incorrect sort order if the changes were done from within a grouped custom collection * Changing the setting "Group unthemed custom collections" could lead to incorrect custom collections sorting under some circumstances * When multi-scraping in semi-automatic mode and a long game name was scrolling, the start position was not reset when scraping the next game +* The VideoComponent static images were not fading out smoothly on gamelist fast-scrolling (only fixed for non-legacy themes) * Clearing a game in the metadata editor would sometimes not remove all media files (if there were both a .jpg and a .png for a certain file type) * The ScummVM platform entry was missing for TheGamesDB which resulted in very inaccurate scraper searches * During multi-scraping the busy indicator was not displayed after a result was acquired but before the thumbnail was completely downloaded diff --git a/THEMES-DEV.md b/THEMES-DEV.md index bcb83fcec..57f51f769 100644 --- a/THEMES-DEV.md +++ b/THEMES-DEV.md @@ -78,7 +78,9 @@ The following are the most important changes compared to the legacy theme struct * The concept of _features_ is gone * The `` tag is gone as tracking theme versions doesn't make much sense after all * The `video` element properties `showSnapshotNoVideo` and `showSnapshotDelay` have been removed +* The `forceUppercase` property has been replaced with the more versatile `letterCase` property * Correct theme structure is enforced more strictly than before, and deviations will generate error log messages and make the theme loading fail +* Many additional elements and properties have been added, refer to the [Reference](THEMES-DEV.md#reference) section for more information Attempting to use any of the legacy logic in the new theme structure will make the theme loading fail, for example adding the _extra="true"_ attribute to any element. @@ -977,8 +979,9 @@ It's strongly recommended to use the same image dimensions for all badges as var - Valid values are `left`, `center`, or `right`. Controls alignment on the X axis and `center` will also align vertically. * `color` - type: COLOR * `backgroundColor` - type: COLOR -* `forceUppercase` - type: BOOLEAN - - Draw text in uppercase. +* `letterCase` - type: STRING + - Valid values are `none`, `uppercase`, `lowercase` or `capitalize` + - Default is `none` (original letter case is retained) * `lineSpacing` - type: FLOAT - Controls the space between lines (as a multiple of font height). - Default is `1.5` @@ -1018,8 +1021,9 @@ It's strongly recommended to use the same image dimensions for all badges as var - Valid values are `left`, `center`, or `right`. Controls alignment on the X axis and `center` will also align vertically. * `color` - type: COLOR * `backgroundColor` - type: COLOR -* `forceUppercase` - type: BOOLEAN - - Draw text in uppercase. +* `letterCase` - type: STRING + - Valid values are `none`, `uppercase`, `lowercase` or `capitalize` + - Default is `none` (original letter case is retained) * `lineSpacing` - type: FLOAT - Controls the space between lines (as a multiple of font height). - Default is `1.5` @@ -1100,7 +1104,7 @@ Displays the game count (all games as well as favorites), any applied filters, a #### carousel * `type` - type: STRING - - Sets the scoll direction of the carousel. + - Sets the carousel type and scroll direction. - Valid values are `horizontal`, `vertical`, `horizontal_wheel` or `vertical_wheel`. - Default is `horizontal` * `size` - type: NORMALIZED_PAIR @@ -1154,10 +1158,9 @@ Displays the game count (all games as well as favorites), any applied filters, a - Default is `000000FF` * `textBackgroundColor` - type: COLOR - Default is `FFFFFF00` -* `textStyle` - type: STRING - - The style of the text. - - Valid values are `original`, `uppercase`, `lowercase` or `camelcase` - - Default is `original` (original formatting is retained) +* `letterCase` - type: STRING + - Valid values are `none`, `uppercase`, `lowercase` or `capitalize` + - Default is `none` (original letter case is retained) * `fontPath` - type: PATH - Path to a TrueType font (.ttf) used as fallback if there is no `logo` image defined or found, and if `defaultLogo` has not been defined. * `fontSize` - type: FLOAT @@ -1201,8 +1204,9 @@ This is a list containing rows of text which can be navigated using the keyboard - Valid values are `left`, `center`, or `right`. Controls alignment on the X axis. * `horizontalMargin` - type: FLOAT - Horizontal offset for text from the alignment point. If `alignment` is "left", offsets the text to the right. If `alignment` is "right", offsets text to the left. No effect if `alignment` is "center". Given as a percentage of the element's parent's width (same unit as `size`'s X value). -* `forceUppercase` - type: BOOLEAN - - Draw text in uppercase. +* `letterCase` - type: STRING + - Valid values are `none`, `uppercase`, `lowercase` or `capitalize` + - Default is `none` (original letter case is retained) * `lineSpacing` - type: FLOAT - Controls the space between lines (as a multiple of font height). - Default is `1.5` @@ -1237,9 +1241,8 @@ The help system is a special element that displays a context-sensitive list of a * `iconTextSpacing` - type: FLOAT - Spacing in pixels within a help system element between its icon and text. - Default is `8.0` -* `textStyle` - type: STRING - - The style of the text. - - Valid values are `uppercase`, `lowercase` or `camelcase` +* `letterCase` - type: STRING + - Valid values are `uppercase`, `lowercase` or `capitalize` - Default is `uppercase` * `customButtonIcon` - type: PATH - A button icon override. Specify the button type in the attribute `button`. diff --git a/THEMES-LEGACY.md b/THEMES-LEGACY.md index 0e7d51bee..01f5a5323 100644 --- a/THEMES-LEGACY.md +++ b/THEMES-LEGACY.md @@ -900,8 +900,6 @@ ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Curren - Spacing in pixels between the help system components. * `iconTextSpacing` - type: FLOAT. Default is 8.0. - Spacing in pixels within a help system component between it's icon and text. -* `textStyle` - type: STRING. Default is `uppercase`. - - The style of the text. Options: `uppercase`, `lowercase`, `camelcase`. * `customButtonIcon` - type: PATH. - A button icon override. Specify the button type in the attribute `button`. The available buttons are: `dpad_updown`, diff --git a/THEMES.md b/THEMES.md index ba904a2f2..aa715f0df 100644 --- a/THEMES.md +++ b/THEMES.md @@ -872,8 +872,6 @@ ES-DE borrows the concept of "nine patches" from Android (or "9-Slices"). Curren - Spacing in pixels between the help system components. * `iconTextSpacing` - type: FLOAT. Default is 8.0. - Spacing in pixels within a help system component between it's icon and text. -* `textStyle` - type: STRING. Default is `uppercase`. - - The style of the text. Options: `uppercase`, `lowercase`, `camelcase`. * `customButtonIcon` - type: PATH. - A button icon override. Specify the button type in the attribute `button`. The available buttons are: `dpad_updown`,