Commit graph

1702 commits

Author SHA1 Message Date
Leon Styhre d631435864 Fixed a compiler warning regarding an unsecure function in MathUtil. 2023-01-06 14:49:11 +01:00
Leon Styhre 6c75d0fc88 Fixed some Clang compiler warnings. 2023-01-06 13:48:59 +01:00
Leon Styhre bcc74db584 Added a selectedItemMargins property to CarouselComponent. 2023-01-05 22:10:45 +01:00
Leon Styhre 52ebc9098b Replaced a deprecated function if building with curl 7.85.0 or newer. 2023-01-05 19:37:23 +01:00
Leon Styhre 60a6776b53 Fixed an issue where defining the same sound file for multiple navigation sounds would log an error to es_log.txt on theme change. 2023-01-05 11:17:34 +01:00
Leon Styhre ad973e1ffa Removed support for all deprecated theme properties. 2023-01-04 21:36:22 +01:00
Leon Styhre fa67018b72 Added variant trigger support. 2023-01-04 19:01:41 +01:00
Leon Styhre 549d78dfed (Windows) Changed a debug output entry in VideoFFmpegComponent to convert forward slashes to backslashes. 2023-01-01 19:59:08 +01:00
Leon Styhre 8b33fceb8a Added checks for nonexistent navigation sounds in the theme configuration with fallback to the default sounds.
Also did some minor code cleanup.
2022-12-22 17:15:15 +01:00
Leon Styhre 1c83c762a8 Fixed an issue where the video element static image would not get displayed for legacy theme sets. 2022-12-21 20:02:12 +01:00
Leon Styhre 251e826589 The defaultImage property can now be used to display a static image in case no video file was found.
Also fixed a bug where the static image would not get displayed in the grouped custom collections view if there was no game found for the system and the previously selected entry already had it's video playing when navigating away from it.
2022-12-21 19:53:03 +01:00
Leon Styhre 3b9ced603c Fixed an issue where the wrong help prompt was shown for the 'A' button when editing multi-line text fields. 2022-12-20 21:54:49 +01:00
Leon Styhre aa33558952 Some code cleanup. 2022-12-20 21:52:48 +01:00
Leon Styhre 1bbed6cc04 gamelist.xml files are no longer loaded from the ROMs/system directories. 2022-12-20 20:20:02 +01:00
Leon Styhre a54d6a5568 (Windows) Converted forward slashes to backslashes for some log output entries involving file names.
Also made some minor general log output changes in GamelistFileParser.
2022-12-19 20:38:41 +01:00
Leon Styhre 8f2065e491 Fixed a cosmetic text sizing issue in DateTimeEditComponent. 2022-12-18 15:53:12 +01:00
Leon Styhre 354da078a3 Fixed multiple issues where the wrong navigation sound would play. 2022-12-18 12:24:12 +01:00
Leon Styhre a7005f22e9 Renamed the textlist property selectorOffsetY to selectorVerticalOffset and added a selectorHorizontalOffset property.
Also enforced minimum and maximum values for a few textlist properties.
2022-12-18 12:02:50 +01:00
Leon Styhre ae52489b6b Added support for up to two imageType values for CarouselComponent and GridComponent. 2022-12-17 22:20:29 +01:00
Leon Styhre 17597ab144 Renamed an incorrectly named static variable in ImageComponent. 2022-12-17 22:15:19 +01:00
Leon Styhre aaa96cd8dd An automatic aspect ratio menu entry is now added even for themes that only have a single aspect ratio defined. 2022-12-17 19:47:37 +01:00
Leon Styhre 5581103642 Adjusted the system view and carousel transition animation times slightly. 2022-12-16 17:25:57 +01:00
Leon Styhre cdc553d75f Added an arcade twin stick controller badge icon. 2022-12-15 18:30:48 +01:00
Leon Styhre 6d4086639a Disabled ScreenScraper controller scraping as they have ruined that functionality. 2022-12-15 18:27:45 +01:00
Leon Styhre ae6c062984 Added gameselectorEntry properties to a number of elements. 2022-12-15 18:23:48 +01:00
Leon Styhre da3fb9a825 Improved the random game selection functionality in GameSelectorComponent. 2022-12-15 18:11:33 +01:00
Leon Styhre f4d4abb33b Added theme support for defining relative brightness for images, videos and animations. 2022-12-14 20:17:41 +01:00
Leon Styhre ab31eafaca Some code cleanup. 2022-12-14 17:30:34 +01:00
Leon Styhre c260c929b5 Added itemSaturation properties to CarouselComponent and GridComponent. 2022-12-13 21:35:21 +01:00
Leon Styhre 6037e80bf1 Added color shift support to VideoComponent. 2022-12-12 21:51:27 +01:00
Leon Styhre 46a1e28aa2 Fixed an issue where the shader postprocessing function did not set the shader premultiplied flag. 2022-12-12 20:42:54 +01:00
Leon Styhre 19111a9c24 Added an itemStacking property to CarouselComponent. 2022-12-12 17:45:07 +01:00
Leon Styhre a5b08e3da2 Moved the position of one GridComponent property. 2022-12-11 17:48:56 +01:00
Leon Styhre 8b33c43dba Added support to GridComponent for flushing cached background and selector images on reload when in debug mode. 2022-12-11 16:40:47 +01:00
Leon Styhre abcd3e5bac Fixed an issue in CarouselComponent and GridComponent where the default image was rendered when it shouldn't.
Also moved a property position in GridComponent.
2022-12-11 12:10:08 +01:00
Leon Styhre 0b5419316d Changed a number of property names in CarouselComponent and GridComponent. 2022-12-11 11:22:08 +01:00
Leon Styhre 7ba596775d Fixed a GridComponent navigation issue when there was only a single column. 2022-12-10 20:36:52 +01:00
Leon Styhre 23438cd101 Updated ThemeData with the new itemFit grid property. 2022-12-10 20:27:05 +01:00
Leon Styhre c394e4ae8d Added an itemFit property to GridComponent. 2022-12-10 20:25:49 +01:00
Leon Styhre c6981084e0 Added cover fit cropping support to ImageComponent. 2022-12-10 20:20:45 +01:00
Leon Styhre f0e3addee6 Added support for setting one of the itemSize property axes to -1 to get square GridComponent items. 2022-12-10 14:31:04 +01:00
Leon Styhre cb4f78b763 Added color shift support to CarouselComponent items. 2022-12-09 19:27:48 +01:00
Leon Styhre 3c2dc7b551 Added a number of properties and corresponding functionality to GridComponent. 2022-12-09 18:49:32 +01:00
Leon Styhre 56b33c5371 Added text theming support to GridComponent. 2022-12-07 19:46:41 +01:00
Leon Styhre 304d304727 Added support for linear interpolation for font texture magnifications. 2022-12-07 18:24:00 +01:00
Leon Styhre 2799974938 Expanded the quick system select menu option from a simple on/off entry to a selection of different button combinations.
Also did some minor code cleanup in GuiMenu.
2022-12-07 18:09:05 +01:00
Leon Styhre 9e0a6df760 Added support for a left/right trigger help system button. 2022-12-07 17:34:07 +01:00
Leon Styhre f6c8921132 GridComponent item opacity is now adjusted for hidden entries and entries marked as not being games. 2022-12-07 17:26:35 +01:00
Leon Styhre 5a18b593f4 Fixed a SystemView navigation rendering glitch when using GridComponent. 2022-12-05 23:12:41 +01:00
Leon Styhre 56c8a43b36 Changed the order of the A, B, X and Y help system buttons.
Also changed the gamelist help text from 'enter' and 'launch' to 'select' for the gamelist view.
2022-12-05 21:37:21 +01:00
Leon Styhre b9e6cdd9da Fixed some GridComponent animation glitches when marking games as favorites. 2022-12-05 21:15:15 +01:00
Leon Styhre da93533aed Fixed multiple navigation issues. 2022-12-04 15:56:59 +01:00
Leon Styhre 4b03c90bf3 Fixed an issue where using the trigger buttons did not reset any currently held buttons. 2022-12-03 15:15:53 +01:00
Leon Styhre 825d220be0 Animations in GridComponent are now finished on menu opening, game launch etc. 2022-12-03 14:29:17 +01:00
Leon Styhre b67ce99a0e Added navigation sound support to GridComponent. 2022-12-03 14:19:22 +01:00
Leon Styhre 48d86ccea7 Made two member functions in TextListComponent private instead of protected. 2022-12-03 14:18:30 +01:00
Leon Styhre 0a2a6d1907 Added a rowTransitions property to GridComponent. 2022-12-03 14:12:14 +01:00
Leon Styhre 3ec8ec14ca Fixed multiple navigation issues in GridComponent. 2022-12-03 14:01:17 +01:00
Leon Styhre 1631cbd30f Added automatic layout and dynamic rendering to GridComponent.
Also fixed multiple navigation issues.
2022-12-02 18:08:48 +01:00
Leon Styhre dfcf041efc Fixed a GridComponent slide transition issue when used in the system view.
Also fixed a general navigation issue.
2022-11-25 22:35:35 +01:00
Leon Styhre 0cd814a4d1 Added on-demand texture loading to GridComponent. 2022-11-25 22:07:36 +01:00
Leon Styhre 99df997833 Added scrolling support to GridComponent.
Also changed the names of two properties.
2022-11-25 18:59:08 +01:00
Leon Styhre be903c0a86 Changed a value for the itemTransitions property for the carousel and grid components.
Also changed the position of a grid property and set the minimum columns value to 1.
2022-11-13 23:04:48 +01:00
Leon Styhre 9013faf445 Added proper item spacing, item offsets and element boundary clipping to GridComponent. 2022-11-13 22:31:41 +01:00
Leon Styhre 75ebd839b9 Placed the primary elements first in the ThemeData element map. 2022-11-13 19:59:26 +01:00
Leon Styhre 5ec0fda3a2 Implemented correct item rendering order in GridComponent. 2022-11-13 19:32:29 +01:00
Leon Styhre 8062ebaf3a GridComponent now sets its default position and size if this is not defined by the theme configuration. 2022-11-13 12:25:46 +01:00
Leon Styhre ed6b23a2c6 Fixed an issue where the default textlist size and position properties were not set for the system view.
Also moved some default value assignments to the TextListComponent itself.
2022-11-13 11:56:18 +01:00
Leon Styhre 48111ce5e4 Added basic GridComponent functionality and integration. 2022-11-12 14:08:53 +01:00
Leon Styhre 12f2142c03 Improved the animation interpolation in CarouselComponent and TextListComponent.
Also eliminated an unnecessary cursor stop function call.
2022-11-11 18:16:51 +01:00
Leon Styhre 74ac8393e3 Small refactoring of AnimationController. 2022-11-11 18:11:31 +01:00
Leon Styhre 3fd18ec2ee Changed a function name in FlexboxComponent. 2022-11-11 18:05:59 +01:00
Leon Styhre 319992a0f7 Changed the include guard names for the primary components. 2022-11-08 21:44:42 +01:00
Leon Styhre b4338a3fb7 Refactored some image resizing functions. 2022-11-07 23:58:22 +01:00
Leon Styhre c73ff02012 Updated the file header comments for CarouselComponent and TextListComponent. 2022-11-06 21:35:36 +01:00
Leon Styhre 4e54508e45 Added a GridComponent skeleton. 2022-11-06 21:34:03 +01:00
Leon Styhre 5bedb7a8fa Small refactoring of CarouselComponent and TextListComponent. 2022-11-06 21:28:15 +01:00
Leon Styhre 645b41afa4 Fixed multiple issues with text rendering for legacy themes. 2022-11-06 00:02:48 +01:00
Leon Styhre 10d0a89a47 Disabled carousel item mipmapping for legacy themes. 2022-11-05 20:42:54 +01:00
Leon Styhre 486942c792 The cache manager now differentiates between mipmapped and non-mipmapped images. 2022-11-05 20:41:17 +01:00
Leon Styhre ad0cfdba8b Tidied up an if statement in GameSelectorComponent. 2022-11-05 15:50:03 +01:00
Leon Styhre 4894ead7e7 Fixed an issue where the gameselector element configuration could lead to a crash. 2022-11-05 13:39:41 +01:00
Leon Styhre 8b5bb18357 Fixed a small font rendering issue in BusyComponent on some devices at low resolutions. 2022-11-04 13:32:10 +01:00
Leon Styhre 502fb69b87 Removed some code comments. 2022-11-04 12:55:00 +01:00
Leon Styhre b4d2babf01 Added a selectedSecondaryColor property to TextListComponent. 2022-11-03 23:24:11 +01:00
Leon Styhre b91daa113d Fixed an uninitialized variable in ThemeData. 2022-11-03 23:19:25 +01:00
Leon Styhre 6b90326574 Removed a lot of pointless setter functions from TextListComponent. 2022-11-03 21:20:35 +01:00
Leon Styhre 246fd307b6 Changed a number of theme properties to be read by reference instead of via copy. 2022-11-03 16:03:21 +01:00
Leon Styhre cfd2f7e4e5 Removed the unnecessary applyTheme function from NinePatchComponent. 2022-11-03 15:44:52 +01:00
Leon Styhre b43c8cdd55 Improved some theme warning messages in TextListComponent.
Also changed some theme values to be read by reference instead of by copy in CarouselComponent.
2022-11-03 15:36:43 +01:00
Leon Styhre 412a19275d Added two letterCaseCollections and letterCaseGroupedCollections properties to TextListComponent and CarouselComponent.
Also refactored the letterCase logic overall in these two components.
2022-11-03 12:31:42 +01:00
Leon Styhre b426473ec0 The text cache is now always reset on text changes. 2022-11-03 12:09:19 +01:00
Leon Styhre 3ead13ad29 Added missing file error checking to BadgeComponent for custom badges and controller images. 2022-11-02 21:18:17 +01:00
Leon Styhre 71b8eba9ce Fixed an issue where the helpsystem would be incorrectly positioned when right-aligned. 2022-11-02 21:15:24 +01:00
Leon Styhre 7c02db291e Fixed a minor log formatting issue in ThemeData. 2022-11-01 23:11:06 +01:00
Leon Styhre 9584c1bcc7 Added support for placing aspectRatio tags inside variant tags and variables and colorScheme tags inside aspectRatio tags. 2022-11-01 17:13:37 +01:00
Leon Styhre 98d9ce42d2 Added support for automatic theme aspect ratio detection. 2022-11-01 17:08:51 +01:00
Leon Styhre 0d7468e9b4 Moved the color scheme parsing even earlier to prevent potential issues. 2022-10-31 21:50:54 +01:00
Leon Styhre f1bd530963 Fixed an issue where the color scheme configuration was parsed after the variant configuration. 2022-10-31 21:02:53 +01:00
Leon Styhre 4e84707e3a Changed the order of two theme properties to improve consistency. 2022-10-31 20:12:42 +01:00
Leon Styhre 8df54bd80e Added support for color schemes. 2022-10-31 19:32:13 +01:00
Leon Styhre bebb345936 Replaced the checkerboard pattern for the default blank texture with a truly blank texture. 2022-10-30 09:16:14 +01:00
Leon Styhre b17c78bc42 Increased the default VRAM limit from 256 to 512 MiB and increased the maximum limit from 1024 to 2048 MiB.
Also increased the default VRAM limit for the Raspberry Pi from 184 to 192 MiB.
2022-10-30 09:11:59 +01:00
Leon Styhre 941835977f Fixed a carousel item sizing issue when logoScale was set to lower than 1.0 for legacy theme sets. 2022-10-29 15:24:46 +02:00
Leon Styhre c870664615 Missing theme files defined using variables now only trigger debug messages instead of errors or warnings.
Also added two DebugSkipMissingThemeFiles and DebugSkipMissingThemeFilesCustomCollections settings.
2022-10-29 13:04:00 +02:00
Leon Styhre 03a9dc8e05 Improved some theme warning messages in BadgeComponent. 2022-10-29 12:54:52 +02:00
Leon Styhre 126d93709e Updated the CImg functions and miximage generator for BGRA instead of RGBA pixel format. 2022-10-28 21:39:57 +02:00
Leon Styhre e1d911f401 Fixed an issue where text caches would not get cleared if the text was set to a blank value. 2022-10-28 21:31:40 +02:00
Leon Styhre 27936131f3 Added a special 'all' shortcut variant. 2022-10-28 21:08:44 +02:00
Leon Styhre b1a2b3f5ca Added support for overriding variables and to define them inside the variants tags. 2022-10-28 21:06:01 +02:00
Leon Styhre 7e2818c854 Fixed an issue where the wrong system name would show up on the carousel if the theme configuration was invalid. 2022-10-28 21:00:49 +02:00
Leon Styhre 3c82bb4dfb Changed the renderer pixel format from RGBA to BGRA.
Also implemented premultiplied alpha for all images, animations and videos and improved the carousel reflection falloff logic.
2022-10-28 00:08:41 +02:00
Leon Styhre c96696fb96 OCD commit. 2022-10-27 19:11:23 +02:00
Leon Styhre e36041669d Fixed an issue where DateTimeEditComponent would not center vertically. 2022-10-27 19:09:45 +02:00
Leon Styhre e4f4f29198 Merged the master branch into new-svg-renderer. 2022-10-26 19:52:01 +02:00
Leon Styhre 2fd5580e13 Fixed a small font offset problem mostly seen at really low resolutions. 2022-10-26 18:42:42 +02:00
Leon Styhre cbea006a70 Removed support for setting logoScale to lower than 1.0 for legacy themes as it introduced backward compatibility issues. 2022-10-25 22:58:03 +02:00
Leon Styhre 3252f8fa1b Reintroduced a transformation rounding in GuiComponent as some GPU drivers went crazy without it. 2022-10-25 21:11:16 +02:00
Leon Styhre 7c1a48ec5c Removed two unnecessary roundings from OptionListComponent. 2022-10-25 20:49:22 +02:00
Leon Styhre c50b6b35f4 Removed some unnecessary roundings. 2022-10-25 20:39:12 +02:00
Leon Styhre 18bbd97433 Fixed an issue where the textlist selector would not get sized correctly. 2022-10-25 20:34:58 +02:00
Leon Styhre a8d1c4a2e1 Fixed an issue in CarouselComponent where setting itemScale to less than 1.0 did not work as expected.
Also fixed a problem where carousel text entries did not get multiplied by itemScale.
2022-10-25 20:33:12 +02:00
Leon Styhre 4513b20339 Some minor font sizing improvements.
Also fixed a few implicit casts.
2022-10-25 01:20:31 +02:00
Leon Styhre 97a9347d67 Improved font sizing for the launch screen, scraper and help system. 2022-10-25 01:06:02 +02:00
Leon Styhre 3de8275db6 Fixed multiple minor pixel alignment issues. 2022-10-25 00:43:27 +02:00
Leon Styhre 84f019680d Greatly improved text sizing and rendering. 2022-10-25 00:39:40 +02:00
Leon Styhre 103e59b54d Fixed an issue where mutually exclusive system variables could lead to theme loading errors. 2022-10-17 22:21:52 +02:00
Leon Styhre 45fa3d2c37 Added a pillarboxThreshold property to control these values for the video element. 2022-10-16 16:40:52 +02:00
Leon Styhre 0f327582c1 Fixed an issue where ScrollableContainer would reset too early. 2022-10-16 15:00:38 +02:00
Leon Styhre 6599c12554 Fixed an issue where ScrollableContainer would sometimes fade in text that had not been scrolled. 2022-10-16 13:51:22 +02:00
Leon Styhre 16c4fb6d17 Fixed some alignment issues in CarouselComponent. 2022-10-14 18:14:15 +02:00
Leon Styhre 5f6bd48022 One more try to fix a rounding issue in TextComponent. 2022-10-14 18:12:23 +02:00
Leon Styhre 7f5ed1c41d Fixed a minor graphical glitch in CarouselComponent. 2022-10-11 21:31:05 +02:00
Leon Styhre 8bbaec229f Fixed a rounding issue in TextComponent. 2022-10-11 19:37:35 +02:00
Leon Styhre 7e923cb9b6 Some refactoring of the OpenGL renderer and TextureDataManager. 2022-10-11 18:11:36 +02:00
Leon Styhre 11b035affa Fixed a rounding issue in TextComponent. 2022-10-11 18:08:57 +02:00
Leon Styhre d74966a3c4 Fixed a heisenbug where letters would sometimes get rendered with ugly edge artifacts. 2022-10-11 18:07:56 +02:00
Leon Styhre 241a0119ef Fixed a crash in the Font::wrapText function. 2022-10-10 21:12:49 +02:00
Leon Styhre 1c82228a9c Fixed two small logical errors. 2022-10-10 20:52:55 +02:00
Leon Styhre 39c9bd2cbc Added font size overflow restrictions to TextComponent and DateTimeComponent.
Also fixed a crash that could occur in TextComponent when blank/dummy fonts were used.
2022-10-10 20:37:04 +02:00
Leon Styhre 610ac9adb3 Implemented dynamic texture allocation to the font handling. 2022-10-10 20:32:35 +02:00
Leon Styhre 6af1f76be8 Fixed an issue where the help system was rendered on top of the menus. 2022-10-10 20:07:40 +02:00
Leon Styhre 0232635504 Refactoring/cleanup. 2022-10-09 19:13:54 +02:00
Leon Styhre 0757156caf Improved error handling for unloadable font files. 2022-10-09 18:01:30 +02:00
Leon Styhre 50832a5b64 Some code cleanup. 2022-10-09 17:59:27 +02:00
Leon Styhre fdcd4a4a9d (Windows) Fixed an MSVC compiler warning. 2022-10-08 11:22:46 +02:00
Leon Styhre d927135034 Fixed an issue where line breaks were included in single-line text entries. 2022-10-08 10:00:40 +02:00
Leon Styhre 508ea87963 Rewrite of the text wrapping code to work with languages which generally lack spaces, like Japanese.
Also implemented massive performance improvements to the text wrapping code.
2022-10-08 09:33:57 +02:00
Leon Styhre d2ca019a75 Avoided unnecessary SVG file parsing for images previously found to be invalid. 2022-10-06 20:20:48 +02:00
Leon Styhre bbe9666f69 Removed the use of a deprecated LunaSVG function that is no longer required. 2022-10-03 21:38:01 +02:00