Commit graph

1626 commits

Author SHA1 Message Date
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
Leon Styhre bf5cce31c6 Replaced the NanoSVG library with LunaSVG. 2022-10-03 18:43:30 +02:00
Leon Styhre 8f6262a3a9 Fixed an issue where the video player output frame width was not set correctly. 2022-10-01 17:19:53 +02:00
Leon Styhre e7f1a0f36c Updated VideoFFmpegComponent for deprecated functions in FFmpeg 5.1 2022-09-30 23:20:36 +02:00
Leon Styhre bfdeb2e004 Video player code cleanup. 2022-09-29 22:32:57 +02:00
Leon Styhre 993efe8504 Fixed an issue where audio for static videos in the gamelist view would get muted on navigation. 2022-09-29 20:18:33 +02:00
Leon Styhre 2c84e9c59b Fixed two SliderComponent issues with inconsistent knob placements.
Also improved the component for use with vertical resolutions and cleaned up some code.
2022-09-28 17:23:44 +02:00
Leon Styhre f048d06b95 Fixed a text abbreviation issue. 2022-09-28 17:21:02 +02:00
Leon Styhre 49c9710afc Added 'none' as a supported carousel item type to show only text entries in the gamelist view. 2022-09-28 17:20:01 +02:00
Leon Styhre 87d1c19e68 Fixed an issue where the scrollable container would not get properly sized after using the single-game scraper. 2022-09-27 21:56:15 +02:00
Leon Styhre 430d3e5e30 Changed the default OpenGL version on the Steam Deck from 3.3 to 4.6 2022-09-27 17:47:10 +02:00
Leon Styhre 15e30bc0ca Increased the minimum VRAM limit from 80 MiB to 128 MiB. 2022-09-27 17:43:27 +02:00
Leon Styhre 7a5daaa6fa Increased the default VRAM limit from 256 MiB to 384 MiB.
Also enabled video framerate upscaling by default on the Steam Deck.
2022-09-27 17:38:02 +02:00
Leon Styhre 06fd76abc3 Added a fadeAbovePrimary property to control whether elements above the system view carousel and textlist should be rendered during fade transitions. 2022-09-26 20:02:31 +02:00
Leon Styhre 577ed366b4 Frame advances no longer take place for GIF and Lottie animations unless update() has been called. 2022-09-26 19:00:59 +02:00
Leon Styhre 123f29aa43 Fixed multiple issues with carousel on-demand texture loading.
Also cleaned up some code.
2022-09-25 19:38:24 +02:00
Leon Styhre 47dd0e33d1 Added fading support for carousel items if the hidden or count-as-game metadata fields have been set. 2022-09-25 13:06:09 +02:00
Leon Styhre fcbe612a0b Fixed an issue where the text background opacity was not calculated correctly. 2022-09-25 10:02:24 +02:00
Leon Styhre 664a39df2c Fixed an issue where ScrollableContainer would not scroll at the correct speed. 2022-09-24 22:53:52 +02:00
Leon Styhre 9d0b3b911f Changed the argument order for the TextComponent constructor. 2022-09-24 21:37:00 +02:00
Leon Styhre 369cc7684b Eliminated a lot of unnecessary text rasterization when populating the gamelist carousel. 2022-09-24 16:47:14 +02:00
Leon Styhre 0736192417 Fixed a text abbreviation issue. 2022-09-24 16:45:18 +02:00
Leon Styhre 782d68f906 Attempt to fix a log output deadlock issue. 2022-09-23 22:49:17 +02:00
Leon Styhre 00b71c7b27 Fixed an issue where text element vertical auto-sizing did not work correctly. 2022-09-23 19:40:39 +02:00
Leon Styhre f620df4dff Eliminated some unnecessary carousel on-demand texture loading. 2022-09-22 20:11:37 +02:00
Leon Styhre 04473d0ff3 Added on-demand texture loading for wheel carousels.
Also added proper support for horizontal and vertical offsetting and fixed a clipping issue.
2022-09-22 19:11:53 +02:00
Leon Styhre 1e9b95baac Very minor code change. 2022-09-21 22:05:21 +02:00
Leon Styhre 7b7a99dbe2 Fixed an issue where overlapping wheel carousel items were not rendered in the correct order. 2022-09-21 22:03:03 +02:00
Leon Styhre 5f864d0b96 Fixed an issue where the itemAxisHorizontal carousel property did not work correctly. 2022-09-21 21:09:10 +02:00
Leon Styhre 02aba10a08 Added a ScreenScraper option to remove dots from game name searches when using the automatic scraper. 2022-09-20 22:45:32 +02:00
Leon Styhre 24a10a7807 Some improvements to the cursor logic in SystemView. 2022-09-20 21:16:39 +02:00
Leon Styhre ac5b3b15e0 Added a new 'itemAxisHorizontal' property to the carousel.
Also fixed a clipping issue when the vertical origin was not set to zero and cleaned up some code.
2022-09-20 17:05:24 +02:00
Leon Styhre 0f53d65f0d Increased the maximum carousel size to 2 per axis. 2022-09-20 00:39:03 +02:00
Leon Styhre 04c23a890f Fixed an issue where instant carousel item transitions would break view slide transitions. 2022-09-19 19:34:39 +02:00
Leon Styhre da343c49aa Added an 'Ignore keyboard input' option to the input device settings menu. 2022-09-19 19:05:06 +02:00
Leon Styhre db46180024 Fixed an issue where setting the carousel itemSize property to zero could crash the application.
Also fixed a small carousel glitch.
2022-09-19 19:02:17 +02:00
Leon Styhre 74a2256037 Added the properties 'itemsBeforeCenter' and 'itemsAfterCenter' to define entries for carousels of the wheel type. 2022-09-19 18:51:05 +02:00
Leon Styhre b435a8dd24 Decreased the splash screen logo size slightly. 2022-09-18 16:33:27 +02:00
Leon Styhre da7bfa0fa7 Fixed an issue where the TextListComponent debug overlay would not always be correctly positioned. 2022-09-18 16:02:03 +02:00
Leon Styhre c45678e857 Fixed an issue where line breaks could not be inserted into multline text entry fields. 2022-09-18 15:35:13 +02:00
Leon Styhre 3636eeba18 Fixed an issue where the carousel would not update when entering and exiting gamelist folders. 2022-09-17 19:27:06 +02:00
Leon Styhre 1258ddc78f Fixed some compiler errors on older GCC versions. 2022-09-17 18:17:57 +02:00
Leon Styhre d1d2349c57 Improved some theme warning log messages in CarouselComponent. 2022-09-17 18:05:51 +02:00
Leon Styhre bea6889926 Added carousel theme support for setting item transitions to 'slide' or 'instant'. 2022-09-17 12:42:27 +02:00
Leon Styhre 87749e7d37 Fixed an issue where overlapping carousel items were not rendered correctly during transitions. 2022-09-17 12:17:01 +02:00
Leon Styhre 3789a0ca12 Fixed a heisenbug where videos would sometimes not get rendered on application startup. 2022-09-17 10:24:46 +02:00
Leon Styhre 720a6fcc22 Added support for fade-in and fade-out of static videos. 2022-09-16 23:54:13 +02:00
Leon Styhre 6fd47a5599 Fixed an issue where the video pillarboxes would not align precisely with the video content. 2022-09-16 23:30:51 +02:00
Leon Styhre d203f4be27 Changed the location for a theme property. 2022-09-16 19:43:36 +02:00
Leon Styhre 3f9023885e Prevented some unnecessary badge rendering. 2022-09-16 19:25:38 +02:00
Leon Styhre 4f88909eff Fixed multiple issues where horizontally scrolling TextListComponent rows would not stop and reset correctly. 2022-09-16 19:22:19 +02:00
Leon Styhre 7e892a7855 Changed the order of some theme properties. 2022-09-16 18:51:36 +02:00
Leon Styhre dca3a6d232 Fixed multiple issues in ScrollableContainer and added a new containerVerticalSnap property. 2022-09-16 18:49:39 +02:00
Leon Styhre 79a661b744 Changed the default vertical tile alignment from top to bottom. 2022-09-15 23:49:08 +02:00
Leon Styhre 16880028d7 Fixed an issue where ScrollableContainer would cause excessive stuttering with some legacy theme sets. 2022-09-15 23:31:51 +02:00
Leon Styhre 611824be18 Improved some invalid theme configuration warnings in ImageComponent. 2022-09-15 21:53:26 +02:00
Leon Styhre 47c8f5988d Some very minor code cleanup. 2022-09-15 17:34:20 +02:00
Leon Styhre 3a41aa61c5 Fixed an issue where a legacy theme workaround for incorrect element types did not work as expected.
Also cleaned up a log warning message related to this.
2022-09-15 17:29:34 +02:00
Leon Styhre 59494b0a9b Fixed an issue where videos without any static images would sometimes have a delayed start. 2022-09-15 17:25:27 +02:00
Leon Styhre 78cdc49200 Fixed an issue where static images for video elements would sometimes not fade out during gamelist fast-scrolling. 2022-09-15 17:22:26 +02:00
Leon Styhre 0aa1d3bdc7 Added checks for whether video files set using the 'path' and 'default' properties actually exist before attempting to use them in VideoComponent. 2022-09-15 17:19:50 +02:00
Leon Styhre 8e43138722 Made GameSelectorComponent not return the same game repeatedly in a row. 2022-09-12 19:48:11 +02:00
Leon Styhre 8d5dc46fc6 Some minor code cleanup. 2022-09-12 19:03:45 +02:00
Leon Styhre 2da2a86397 Adjusted the splash screen sizing to be more consistent across various screen aspect ratios. 2022-09-11 17:24:05 +02:00
Leon Styhre a2eedde8d3 Fixed a small rounding error in TextComponent. 2022-09-10 20:05:58 +02:00
Leon Styhre c50f39dd05 Updated the CMake configuration for the removed legacy theme engine code. 2022-09-10 11:58:52 +02:00
Leon Styhre 596bc5e8af Removed a lot of deprecated theme engine code from the legacy engine. 2022-09-10 11:55:35 +02:00
Leon Styhre f0fd5346c6 Changed the default origin from 0.5 0.5 to 0 0 for GIFAnimComponent and LottieAnimComponent. 2022-09-10 11:24:43 +02:00
Leon Styhre 8cc3d1aac5 Added some more workarounds for legacy theme sets with incorrectly defined element types. 2022-09-09 18:03:58 +02:00
Leon Styhre 807cf7b057 Fixed a rounding issue for the ImageComponent debug overlay. 2022-09-09 17:56:41 +02:00
Leon Styhre 2a4d9d334d Gamelist fade animations are now cancelled on certain navigation actions. 2022-09-09 17:52:20 +02:00
Leon Styhre a58153f08d The badge overlay images are now retained in the texture cache. 2022-09-08 19:04:56 +02:00
Leon Styhre b3148a7f74 Added a dummy RatingComponent object to SystemView to keep the cached texture entries from expiring. 2022-09-08 18:59:33 +02:00
Leon Styhre 2742424ca2 Some general code cleanup. 2022-09-08 18:56:02 +02:00
Leon Styhre a2769b98d4 Added a workaround for playing broken video files with invalid PTS values. 2022-09-08 18:38:19 +02:00
Leon Styhre b9303e5494 Mipmapping is now taken into consideration when calculating the VRAM usage. 2022-09-07 21:17:01 +02:00
Leon Styhre 406aecc6a9 Added two new properties tileHorizontalAlignment and tileVerticalAlignment to the image element. 2022-09-07 20:18:15 +02:00
Leon Styhre d362f62b45 Added explicit sorting of the custom event scripts. 2022-09-07 20:01:04 +02:00
Leon Styhre c537de51ef Some general code cleanup. 2022-09-07 19:59:27 +02:00
Leon Styhre 8361c4f15c Moved the Alignment enumerator from Font to GuiComponent. 2022-09-07 19:54:55 +02:00
Leon Styhre 503ff07d81 Fixed an issue where the rating stars would not display properly in the metadata editor and in the scraper.
Also fixed a minor rounding issue.
2022-09-07 19:29:56 +02:00
Leon Styhre feef706ba4 (Windows) Fixed an MSVC compiler warning. 2022-09-06 22:59:32 +02:00
Leon Styhre 487cbd84bc Fixed an excessive texture pop-in issue caused by a recent commit. 2022-09-06 22:39:28 +02:00
Leon Styhre b4b709b589 Added a tileSize property to the image element so that the size of each individual image in tiled textures can be defined. 2022-09-06 21:33:50 +02:00
Leon Styhre b6dc0bd72c Removed the font texture linear magnification support as it caused various rendering artifacts. 2022-09-06 00:51:16 +02:00
Leon Styhre 9d46625739 Added support for texture mipmapping with trilinear filtering. 2022-09-05 23:36:49 +02:00
Leon Styhre 1bbf32a6f5 Fixed some menu alignment issues. 2022-09-05 23:05:09 +02:00
Leon Styhre 311595ff62 Removed an unnecessary rounding in TextComponent. 2022-09-05 23:03:04 +02:00
Leon Styhre 01d410867c Moved back the wide SVG images size compensation from TextureData to ImageComponent. 2022-09-05 23:00:47 +02:00