Commit graph

669 commits

Author SHA1 Message Date
Leon Styhre 7daf69092f Added theme support for controlling the TextListComponent collection indicators. 2022-04-15 21:20:43 +02:00
Leon Styhre 2001a9f639 Added a collection badge to be shown when editing custom collections.
Also changed the default badge lines value from 2 to 3.
2022-04-15 19:27:38 +02:00
Leon Styhre 254e271392 Added theme support for controlling the TextListComponent indicators. 2022-04-15 17:06:33 +02:00
Leon Styhre 30b02456c0 Added a folder badge including support for a folder link overlay. 2022-04-13 16:53:28 +02:00
Leon Styhre 91460495be Added size restrictions to fonts and textures to avoid crashes caused by invalid theme configuration. 2022-04-10 11:53:44 +02:00
Leon Styhre 72ce3d33a8 Some code cleanup. 2022-04-09 16:32:47 +02:00
Leon Styhre 8ce820e001 Fixed an issue where carousel shoulder button navigation was a bit inconsistent. 2022-03-25 23:38:04 +01:00
Leon Styhre e7aeb8e2b4 Removed the playing of some navigation sounds during textlist and carousel navigation. 2022-03-25 23:17:56 +01:00
Leon Styhre fa4151a3d9 Fixed some GCC compiler warnings. 2022-03-24 23:32:28 +01:00
Leon Styhre 3a1c9d41ce Fully generalized SystemView and GamelistView and rewrote CarouselComponent into a template class.
Also cleaned up some code and fixed an issue where navigation sounds would not play when using the shoulder buttons.
2022-03-24 23:05:23 +01:00
Leon Styhre 5625f44a0a Added dimming support to RatingComponent. 2022-03-21 20:35:24 +01:00
Leon Styhre 3eacb27c3b Changed the helpsystem properties entrySpacing and iconTextSpacing to relative values.
Also reverted the helpsystem horizontal alignment functionality as it's not needed.
2022-03-20 19:07:52 +01:00
Leon Styhre 07f151d906 Moved TextListComponent and CarouselComponent from es-core to es-app. 2022-03-19 09:55:05 +01:00
Leon Styhre 44fe2f8fe7 Standardized some theme warning log output. 2022-03-18 20:31:04 +01:00
Leon Styhre a115b3f941 Added alignment support and separate dimming of gamelist and system views to the help system. 2022-03-18 20:14:51 +01:00
Leon Styhre 56d1b8f83d Fixed an issue where multiple carousel logos were rendered when there was only a single system. 2022-03-17 21:52:55 +01:00
Leon Styhre 86ad917bc8 Set logo scaling to linear interpolation in CarouselComponent. 2022-03-17 19:34:41 +01:00
Leon Styhre 5de2855d60 Added theme support for defining color saturation for the image, video and animation components. 2022-03-17 19:33:09 +01:00
Leon Styhre b6e38dcf67 Fixed multiple issues in CarouselComponent. 2022-03-17 00:02:16 +01:00
Leon Styhre f859fd828d Cleaned up the GLSL shader files and related code. 2022-03-15 00:14:06 +01:00
Leon Styhre 06a037d8cf Shader flags are now sent as bit masks instead of via discreet values.
Also changed the shader flags to enums.
2022-03-14 22:30:24 +01:00
Leon Styhre f0c35d8509 Refactored the rendering code into proper classes. 2022-03-14 19:51:48 +01:00
Leon Styhre a7db474a64 Unified the OpenGL and OpenGL ES renderers and removed the fixed function pipeline.
Also made some other rendering optimizations and cleaned up some code.
2022-03-13 23:52:32 +01:00
Leon Styhre 32251e0264 Fixed multiple issues with the shader post-processing.
Also removed an unnecessary parameter for the createTexture() function.
2022-03-12 14:22:27 +01:00
Leon Styhre bebc9d58cf Added debug overlay support to GIFAnimComponent. 2022-03-12 10:19:47 +01:00
Leon Styhre 8497967510 Disabled rlottie caching in debug mode so animations can be replaced on the fly. 2022-03-12 10:11:04 +01:00
Leon Styhre 755b2c9f50 Changed some render variables to more verbose names.
Also fixed an issue with fade transitions for legacy themes.
2022-03-11 23:51:41 +01:00
Leon Styhre 63af859618 Modernized the OpenGL renderer and replaced most fixed function pipeline code with shaders.
Also greatly improved the shader post processing performance and added component dimming support.
2022-03-11 23:17:04 +01:00
Leon Styhre 9e2c24ef79 Fixed an issue where videos would still play if the video theme configuration was broken. 2022-03-06 22:52:13 +01:00
Leon Styhre 2df8a867ad Fixed some compiler errors when building with FFmpeg 5.0 2022-03-06 14:38:19 +01:00
Leon Styhre cc05f778e4 (Windows) Made GIFAnimComponent work with filenames containing Unicode characters. 2022-03-06 12:53:20 +01:00
Leon Styhre f9b2dfe037 (Windows) Made LottieAnimComponent work with filenames containing Unicode characters. 2022-03-06 11:36:19 +01:00
Leon Styhre 60213003b1 (Windows) Fixed some incomprehensible compiler errors. 2022-03-05 22:12:50 +01:00
Leon Styhre 73643eb8d9 (Windows) Fixed a compiler error. 2022-03-05 21:36:40 +01:00
Leon Styhre ed540359c5 Updated GIFAnimComponent to a fully working state. 2022-03-05 20:56:47 +01:00
Leon Styhre f953e0d409 Fixed a Lottie animation issue where extra frames would play when alternating.
Also did some general code cleanup.
2022-03-05 20:40:13 +01:00
Leon Styhre fec860f5d3 Merge branch 'master' into new-theme-engine-phase-four 2022-02-27 16:44:59 +01:00
Leon Styhre c96ab29e95 Fixed a few GCC compiler warnings. 2022-02-27 15:23:33 +01:00
Leon Styhre abb48e45e7 Added GIFAnimComponent skeleton. 2022-02-23 22:04:18 +01:00
Leon Styhre 32349dc9a6 Renamed LottieComponent to LottieAnimComponent. 2022-02-23 21:54:57 +01:00
Leon Styhre c7a4449e36 Fixed a use-after-free in GameSelectorComponent. 2022-02-20 19:31:19 +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 73e0e59b8c Fixed an issue where hidden videos would still play. 2022-02-20 15:04:05 +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 77beb39801 Fixed an issue where videos would not get centered if pillarboxes were enabled. 2022-02-19 20:31:54 +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 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 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 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 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 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 4eb763d816 Replaced the ambiguous alignment properties with specific horizontal and vertical properties. 2022-02-11 00:19:08 +01:00
Leon Styhre 28a3beb9ce ScrollableContainer parameters are now themeable. 2022-02-10 20:02:56 +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 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 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 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 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 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 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 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 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 8596aca68c Added an OpenGL ES 2.0 renderer. 2022-01-13 19:39:49 +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 5a085c585e Fixed a frame caching issue in LottieComponent. 2022-01-10 17:42:01 +01:00
Leon Styhre aeb0292a3e Changed a variable to inline static in BadgeComponent. 2022-01-09 23:41:56 +01:00