Commit graph

1286 commits

Author SHA1 Message Date
Leon Styhre c7a4449e36 Fixed a use-after-free in GameSelectorComponent. 2022-02-20 19:31:19 +01:00
Leon Styhre 5f4a26c38c Set fan art scraping as enabled by default. 2022-02-20 17:49:57 +01:00
Leon Styhre a97e86a6aa Renamed the menu option to enable or disable audio playback for gamelist videos. 2022-02-20 16:07:27 +01:00
Leon Styhre e92af0548c Added DateTimeComponent support to SystemView. 2022-02-20 15:49:32 +01:00
Leon Styhre 73e0e59b8c Fixed an issue where hidden videos would still play. 2022-02-20 15:04:05 +01:00
Leon Styhre 3795edb1b9 Removed the broken rotation support for video elements. 2022-02-20 15:03:31 +01:00
Leon Styhre c06dea5d2d Lottie animations are now paused during view transitions. 2022-02-19 22:44:02 +01:00
Leon Styhre f803e23fd2 Added theme support for disabling audio playback for each defined video. 2022-02-19 21:45:31 +01:00
Leon Styhre 29514d4db9 Added video support to SystemView. 2022-02-19 21:22:46 +01:00
Leon Styhre 77beb39801 Fixed an issue where videos would not get centered if pillarboxes were enabled. 2022-02-19 20:31:54 +01:00
Leon Styhre 4b0d3a4ecb Clamped the themeable origin values to 0.0 to 1.0 2022-02-19 20:24:25 +01:00
Leon Styhre 374a66dd76 Removed the 'Play videos immediately' setting. 2022-02-19 17:16:38 +01:00
Leon Styhre c4eb1b8b97 Greatly simplified the video controls code.
Also fixed a cosmetic issue with carousel fade transitions.
2022-02-19 17:04:23 +01:00
Leon Styhre ee1a0f7cd3 Added support for using the tilde symbol for ROM path tags in es_systems.xml 2022-02-16 19:32:02 +01:00
Leon Styhre 0266a6e7e6 Fixed a video fade-in issue when using the GLES renderer. 2022-02-15 22:34:26 +01:00
Leon Styhre 5ac6bcb902 Added opacity support to the scanline shader. 2022-02-15 22:13:11 +01:00
Leon Styhre a9d1f6e307 Added support for setting the video fade-in time via the theme configuration. 2022-02-15 21:26:40 +01:00
Leon Styhre 4f019c3775 Added support for defining multiple imageType entries.
Also made some improvements to GameSelectorComponent and related logic.
2022-02-14 19:32:07 +01:00
Leon Styhre eb3729a5fb Fixed a few crashes related to GameSelectorComponent. 2022-02-13 23:15:43 +01:00
Leon Styhre cc8123f5a6 Added a GameSelectorComponent for displaying game media in SystemView. 2022-02-13 20:03:34 +01:00
Leon Styhre 31c5b200d1 Added support for using unsigned integers for theme properties. 2022-02-13 15:01:55 +01:00
Leon Styhre 027265da67 Added themeable opacity support for the help system. 2022-02-13 12:18:33 +01:00
Leon Styhre 1bca9e185e Changed to the more specific imageType and systemdata theme properties.
Also made it possible to set the image interpolation method from the theme, and added clamping to the lineSpacing property.
2022-02-13 11:45:06 +01:00
Leon Styhre 9f04d7aad8 Fixed an issue where marquee images would not show for legacy themes. 2022-02-13 11:23:41 +01:00
Leon Styhre e0540ee03b Video pillarboxes and scanline rendering can now be controlled from the theme configuration. 2022-02-12 17:46:31 +01:00
Leon Styhre 6572fa8f23 The displayRelative property can now be overridden for the md_lastplayed metadata type. 2022-02-12 17:43:20 +01:00
Leon Styhre 69c1a1259d Added opacity support to the BGRA to RGBA shader. 2022-02-12 17:40:25 +01:00
Leon Styhre f585f87497 Added support for setting component opacity from the theme configuration. 2022-02-12 17:38:55 +01:00
Leon Styhre c24cf1e57a Fixed an issue where RatingComponent outlines would not fade correctly. 2022-02-12 13:36:40 +01:00
Leon Styhre 35970dd95d (Windows) Fixed a few MSVC compiler warnings. 2022-02-11 23:45:25 +01:00
Leon Styhre a42d63e567 Code cleanup by moving a lot of casts to the appropriate getter functions. 2022-02-11 23:38:23 +01:00
Leon Styhre ead1d5af9c Fixed a small alignment issue in ComponentList. 2022-02-11 23:33:29 +01:00
Leon Styhre 2c2e624160 Changed the opacity data type and functions from unsigned char to float. 2022-02-11 22:10:25 +01:00
Leon Styhre 8fd05bb2a2 Fixed a flickering text issue in GuiDetectDevice. 2022-02-11 21:36:22 +01:00
Leon Styhre 89efdef39c Fixed an issue where horizontal and vertical color gradients were mixed up.
Also added logging in case an invalid gradient type is used in a theme.
2022-02-11 18:44:24 +01:00
Leon Styhre 9a24423c82 Fixed an issue where transition animations could stop working after switching theme sets. 2022-02-11 18:40:39 +01:00
Leon Styhre 85cb10d71a Changed some string::compare functions to == operators.
Also removed an unused theme property.
2022-02-11 18:39:16 +01:00
Leon Styhre 4eb763d816 Replaced the ambiguous alignment properties with specific horizontal and vertical properties. 2022-02-11 00:19:08 +01:00
Leon Styhre e6d6f3252f Improved the StringUtil::toCapitalized function. 2022-02-10 21:56:02 +01:00
Leon Styhre 28a3beb9ce ScrollableContainer parameters are now themeable. 2022-02-10 20:02:56 +01:00
Leon Styhre 70eb937f85 Fixed a potential crash for legacy themes with broken configuration. 2022-02-09 23:12:12 +01:00
Leon Styhre 09bc9770f2 Changed the theme property forceUppercase to the more versatile letterCase property. 2022-02-09 22:06:34 +01:00
Leon Styhre 6db671de3d Added support to TextComponent for lowercase and capitalized text conversions.
Also changed camelCase to capitalized and textStyle to letterCase in various places.
2022-02-09 20:44:22 +01:00
Leon Styhre 9856a3da1b ThemeData now only prints debug messages for missing files set using variables. 2022-02-09 18:45:03 +01:00
Leon Styhre b9e9178169 Fixed multiple issues in CarouselComponent. 2022-02-09 18:22:06 +01:00
Leon Styhre 027af497d5 Fixed an issue where VideoComponent static images were not fading out correctly in the gamelist view. 2022-02-09 18:16:15 +01:00
Leon Styhre 03f8e020c3 Fixed a reverse scrolling issue in CarouselComponent. 2022-02-09 00:05:06 +01:00
Leon Styhre 69b9b587d6 Added support for text entries to CarouselComponent.
Also fixed some issues with the carousel wheels and removed an unused function in ThemeData.
2022-02-07 21:05:56 +01:00
Leon Styhre b5d49e9b43 Migrated the carousel code from SystemView to CarouselComponent. 2022-02-06 14:01:40 +01:00
Leon Styhre afe249c5fc Added CarouselComponent skeleton. 2022-02-04 21:42:08 +01:00
Leon Styhre bc8c23d642 Enabled the video player audio by default. 2022-02-01 20:54:36 +01:00
Leon Styhre c530373ddc Improved the integration of the variant and aspect ratio options in the UI Settings menu.
Also reorganized the order of some settings.
2022-02-01 18:06:32 +01:00
Leon Styhre 36fe3c871c Fixed an issue where corrupt textures could get rendered. 2022-02-01 17:51:00 +01:00
Leon Styhre 061974eddf Added UI labels to the theme aspect ratios. 2022-01-31 23:22:42 +01:00
Leon Styhre 2bf5e6f3f1 Fixed two text color issues when resetting ScrollableContainer. 2022-01-31 22:53:21 +01:00
Leon Styhre 0e9e47e090 Fixed an issue where text transparencies would not work. 2022-01-31 22:37:10 +01:00
Leon Styhre 285d2a7bcc Removed an unnecessary color opacity variable from GuiComponent. 2022-01-31 22:36:08 +01:00
Leon Styhre d140804dad Adjusted a few log warning messages in ThemeData. 2022-01-30 21:35:39 +01:00
Leon Styhre 1dd5e52760 Updated ThemeData to more strictly enforce the new theme engine format. 2022-01-30 21:13:49 +01:00
Leon Styhre e96aa82dd3 Fixed an issue where some images would not get rendered. 2022-01-30 20:48:31 +01:00
Leon Styhre f2c708bf79 Fixed two incorrect intializations in TextComponent. 2022-01-30 19:36:58 +01:00
Leon Styhre bf222d7eb0 Fixed some missing initializations in TextComponent. 2022-01-30 19:31:53 +01:00
Leon Styhre 3bf46c3fb0 Added support for two new 'scrollFadeIn' and 'defaultImage' properties.
Also fixed some issues with theming ScrollableContainer.
2022-01-30 19:30:38 +01:00
Leon Styhre c35a297d9a Large update to get the new theme engine up and running. 2022-01-29 18:41:22 +01:00
Leon Styhre 0ca2b62edf Some minor code cleanup. 2022-01-29 18:16:30 +01:00
Leon Styhre 336ff3ea7c Added an extra assert macro to GuiComponent. 2022-01-29 18:12:30 +01:00
Leon Styhre 4b1138ebc7 Fixed an issue where ScrollableContainer could round its size to zero.
Also added a sizing check to prevent application hangs on zero-sized containers.
2022-01-29 11:06:58 +01:00
Leon Styhre 24f65a2560 Prevented ImageComponent from attempting to render an empty texture. 2022-01-25 18:18:16 +01:00
Leon Styhre dc20a9e21b Cleaned up ThemeData a bit. 2022-01-23 20:03:50 +01:00
Leon Styhre 644f79ebec Improved the theme loading error logging.
Also cleaned up the code a bit.
2022-01-23 17:50:51 +01:00
Leon Styhre a147c87cea Added a new getRatingValue function to RatingComponent. 2022-01-22 21:25:35 +01:00
Leon Styhre 487422454e Added support for the 'metadata' element to TextComponent and DateTimeComponent. 2022-01-22 21:24:19 +01:00
Leon Styhre 6229592c74 Added two new 'metadata' and 'scrollHide' elements to ThemeData. 2022-01-22 21:21:13 +01:00
Leon Styhre d04a49957c Added a metadata field to GuiComponent.
Also did some general code cleanup of GuiComponent.
2022-01-22 21:17:28 +01:00
Leon Styhre 2aabe2eef3 Reduced CPU usage significantly when a menu is open. 2022-01-19 19:31:27 +01:00
Leon Styhre a443f86235 Removed a huge amount of unnecessary Window* function arguments. 2022-01-19 18:01:54 +01:00
Leon Styhre dfeddebc66 Removed a lot of unnecessary combinations of the virtual and override keywords. 2022-01-18 17:40:47 +01:00
Leon Styhre 1a2920c5fc Some minor code cleanup in TextListComponent.h 2022-01-17 21:35:59 +01:00
Leon Styhre 2ebfb45bdf Some minor code cleanup. 2022-01-17 20:47:30 +01:00
Leon Styhre 0c8efee8ad General refactoring and code cleanup. 2022-01-16 18:18:28 +01:00
Leon Styhre 8a6652552f Set the clang-format option SpaceBeforeCpp11BracedList to true. 2022-01-16 12:09:55 +01:00
Leon Styhre 5f2f439fc3 Moved the fan art scrape menu option to the bottom and set it as disabled by default. 2022-01-16 10:43:12 +01:00
Leon Styhre 89cf82b88e When multi-scraping and scrolling a long name, the start position would sometimes not reset correctly. 2022-01-15 19:28:41 +01:00
Leon Styhre c7964b7ebc Renamed GameList to Gamelist throughout the codebase. 2022-01-15 13:38:09 +01:00
Leon Styhre 92f5284bf3 Added support for scraping fan art images.
Also added scraping of box back covers when using TheGamesDB.
2022-01-15 13:16:23 +01:00
Leon Styhre dde456cbc8 Removed the unnecessary Renderer::getWindowFlags() function. 2022-01-14 18:23:51 +01:00
Leon Styhre 73beeeaeaf Fixed two Emscripten compiler warnings. 2022-01-13 20:07:04 +01:00
Leon Styhre 8596aca68c Added an OpenGL ES 2.0 renderer. 2022-01-13 19:39:49 +01:00
Leon Styhre 90fa63f91c Removed support for supplying a separate format than internalFormat when creating OpenGL textures. 2022-01-12 22:25:41 +01:00
Leon Styhre d85c966e49 Added logging of the display refresh rate on startup. 2022-01-12 21:26:43 +01:00
Leon Styhre a233b96c2a Removed some unnecessary typedefs and replaced the remaining ones with the more modern 'using' keyword.
Also harmonized the names of some user defined types and made some other minor cleanup.
2022-01-11 21:57:00 +01:00
Leon Styhre d45a67eeab (Windows) Fixed a few compiler errors and warnings. 2022-01-10 19:53:23 +01:00
Leon Styhre b4e08ba92b Renamed Platform to utils/PlatformUtil 2022-01-10 18:56:04 +01:00
Leon Styhre 2d149c5161 Moved all Platform functions to the utility namespace. 2022-01-10 18:43:17 +01:00
Leon Styhre 5a085c585e Fixed a frame caching issue in LottieComponent. 2022-01-10 17:42:01 +01:00
Leon Styhre c3dbdd431c Fixed some potential segfaults on emergency shutdown. 2022-01-10 17:41:08 +01:00
Leon Styhre f80658696c Removed some unnecessary time measurement constants. 2022-01-09 23:50:08 +01:00
Leon Styhre aeb0292a3e Changed a variable to inline static in BadgeComponent. 2022-01-09 23:41:56 +01:00
Leon Styhre 5c07e29101 Fixed an issue where the cached background would sometimes miss some GUI elements. 2022-01-09 19:50:11 +01:00
Leon Styhre f66bb91496 Decreased the background caching invalidation delay from 50 to 25 ms. 2022-01-09 19:48:29 +01:00
Leon Styhre 6ff91e89ca Disabled debug mode in LottieComponent and fixed a small bug. 2022-01-09 19:26:42 +01:00
Leon Styhre cd7cfe36ce Added play direction support to LottieComponent.
Also fixed some bugs and cleaned up the code a bit.
2022-01-09 18:17:23 +01:00
Leon Styhre e730d24da0 Added a small delay to the cached background invalidation to give components some time to render. 2022-01-09 17:56:17 +01:00
Leon Styhre a1abaa7112 Increased the default per-file maximum Lottie cache size from 100 to 150 MiB. 2022-01-09 13:45:44 +01:00
Leon Styhre b16ea29088 Added theme support and proper application integration for LottieComponent. 2022-01-09 13:43:42 +01:00
Leon Styhre d45c690586 Some CMake configuration changes for building with rlottie. 2022-01-08 16:23:23 +01:00
Leon Styhre b3421823a7 Added rudimentary frame caching support to LottieComponent. 2022-01-08 15:04:10 +01:00
Leon Styhre 3f629b6c1e Created proper program structure for LottieComponent. 2022-01-08 11:25:29 +01:00
Leon Styhre 3ee4e4cb35 Added threading support and proper frame pacing to LottieComponent. 2022-01-07 19:09:07 +01:00
Leon Styhre 0c552dd8fb Added a GLSL shader to convert the color model BGRA to RGBA.
Also added support for specifying a separate format as compared to internalFormat when creating textures, although the shader should be used primarily as this is not really supported by the OpenGL standard.
2022-01-07 18:54:52 +01:00
Leon Styhre 0021bee104 (Windows) Fixed two compiler warnings. 2022-01-07 00:30:31 +01:00
Leon Styhre 19147eee66 (Windows) CMake configuration changes to make rlottie build correctly. 2022-01-07 00:29:31 +01:00
Leon Styhre 998830181f Added CMake configuration for the Lottie animation support. 2022-01-06 23:19:37 +01:00
Leon Styhre f56d7cc67b Added a preliminary Lottie animation component.
Also added two temporary test animations.
2022-01-06 23:15:29 +01:00
Leon Styhre c62a069448 Fixed an issue where the audio device was accessed after it had been closed. 2022-01-05 00:08:50 +01:00
Leon Styhre 87ace0b8cb Changed some shared_ptr return values to use values instead of references. 2022-01-04 22:36:15 +01:00
Leon Styhre 0cbcb7a516 Changed Settings::getInstance() from returning a smart_ptr to returning a regular pointer. 2022-01-04 21:54:55 +01:00
Leon Styhre 5d79c3d77e Fixed a compile error when building with the bundled TLS/SSL certificates. 2022-01-04 21:38:46 +01:00
Leon Styhre 254b00a3d8 Large refactoring to improve thread safety and improve singleton pattern usage. 2022-01-04 21:21:26 +01:00
Leon Styhre f36245886f Set the 'Scrape actual folders' option as enabled by default.
Also moved it higher up in the scraper options menu.
2022-01-03 18:20:49 +01:00
Leon Styhre 6431804ee7 Removed the deprecated VideoVlcComponent. 2022-01-02 13:13:01 +01:00
Leon Styhre fa993a0489 Fixed a texture corruption issue caused by too aggressive optimizations. 2021-12-27 21:24:34 +01:00
Leon Styhre 796951bf44 Fixed an issue in TextEditComponent when clearing really long strings. 2021-12-27 19:52:45 +01:00
Leon Styhre c63e5e4529 Fixed an additional issue in the ROM selection dialog. 2021-12-27 19:26:42 +01:00
Leon Styhre 7f314d0108 Fixed a few cosmetic issues in the ROM selection dialog. 2021-12-27 19:00:22 +01:00
Leon Styhre 246e9ae8be Fixed a cosmetic issue with the ROM directory setup dialog caused by an optimization. 2021-12-26 17:07:57 +01:00
Leon Styhre 2d8d1e6831 (macOS) Reduced the CPU usage significantly while running in the background. 2021-12-14 18:17:46 +01:00
Leon Styhre 08bba3cbaf (macOS) Removed the Monterey VSync workaround as Apple has patched its OS. 2021-12-14 17:15:04 +01:00
Leon Styhre ab92a4135a Fixed an issue where using fallback fonts at very low resolutions could lead to a crash. 2021-12-14 17:12:39 +01:00
Leon Styhre 5fd2c86c7d Fixed an issue where corrupt Unicode strings could crash the application. 2021-12-14 17:08:37 +01:00
Leon Styhre 55316365d8 Fixed an issue where buggy controller drivers could crash the application. 2021-12-10 16:51:41 +01:00
Leon Styhre 045e56ae3f (Windows) Changed the fullscreen mode to SDL_WINDOW_BORDERLESS.
Also removed the 'AMD and Intel GPU game launch workaround' menu option.
2021-12-09 18:53:22 +01:00
Leon Styhre 0978c697a2 (macOS) Updated a code comment as the issue described was resolved with SDL 2.0.18 2021-12-08 21:19:24 +01:00
Leon Styhre 5019d8c065 Moved the ScreenScraper account toggle to the bottom of the scraper account screen. 2021-12-06 20:21:32 +01:00
Leon Styhre 4227a609a2 Made the window corners slightly more rounded. 2021-12-06 18:58:51 +01:00
Leon Styhre 7e8d1f6434 (Windows) Improved game launching with the AMD and Intel GPU workaround setting enabled. 2021-12-06 18:51:50 +01:00
Leon Styhre 515577c8f9 (Unix) Changed the fullscreen mode to SDL_WINDOW_FULLSCREEN_DESKTOP.
Also removed the --windowed, --fullscreen-normal and --fullscreen-borderless command line options and menu entry.
2021-12-05 13:51:39 +01:00
Leon Styhre 6e24c8d77b Increased the amount of custom event arguments from two to four. 2021-12-05 11:25:11 +01:00
Leon Styhre f5ff480fc4 Fixed a GCC compiler warning. 2021-12-02 17:40:45 +01:00
Leon Styhre 0fdd169835 Fixed a compile error on BSD Unix. 2021-12-01 19:10:17 +01:00
Leon Styhre 3516ee7a26 (macOS) Set the Monterey VSync workaround setting as enabled by default. 2021-12-01 18:05:43 +01:00
Leon Styhre a2253113f7 (macOS) Some fixes to make the legacy build work again. 2021-12-01 17:57:23 +01:00
Leon Styhre 8373d59e29 (macOS) All dependencies are now built in-tree. 2021-11-30 22:14:18 +01:00
Leon Styhre a4f8fe78e1 Fixed a time zone issue related to the Unix epoch. 2021-11-26 20:55:54 +01:00
Leon Styhre 5482950689 Updated a code comment regarding the use of bundled TLS certificates. 2021-11-25 18:56:30 +01:00
Leon Styhre 360be460a2 Added a CMake option to use the bundled TLS certificates with cURL. 2021-11-25 17:34:34 +01:00
Leon Styhre 7ebf895613 Fixed a ScrollableContainer sizing issue while running in the background when games are launched. 2021-11-22 19:46:05 +01:00
Leon Styhre 2bbbab7d70 Small optimization in VideoFFmpegComponent. 2021-11-18 17:25:09 +01:00
Leon Styhre 0314b2d439 Fixed a performance regression caused by excessive mutex locks. 2021-11-18 17:20:59 +01:00
Leon Styhre e91e23a053 Small code simplification in Settings. 2021-11-18 17:19:30 +01:00