Leon Styhre
848d19a80b
Added support for binding multiple texture units for use in the shaders
2023-09-07 21:02:38 +02:00
Leon Styhre
8c9ebc2dcd
Renamed the textureSize shader uniform to texSize to avoid collision with the GLSL keyword
...
Also some additional minor renderer code cleanup
2023-08-31 17:11:32 +02:00
Leon Styhre
6ae8c87864
Added a number of properties to allow horizontally scrolling text entries with CarouselComponent
...
Also added support for rotating horizontal scrollable containers
2023-08-09 18:57:23 +02:00
Leon Styhre
e7ada6111b
Added a 'containerType' property to the text element to select between vertical and horizontal containers
2023-08-07 22:58:35 +02:00
Leon Styhre
ed1e11418b
Completely removed support for legacy EmulationStation theme sets
2023-07-30 18:17:27 +02:00
Leon Styhre
5e64694e3c
Added support for a lot more emoji characters by bundling the Google Noto Emoji font
2023-07-15 22:23:13 +02:00
Leon Styhre
47c321e434
Enabled linear interpolation support for ImageComponent::setRawImage()
2023-07-04 17:41:41 +02:00
Leon Styhre
3d5a8aa08f
Fixed an issue where TextureResource::initFromPixels() was not setting the source size correctly
2023-06-21 23:06:55 +02:00
Leon Styhre
dfe7469101
Added six new theme properties for sizing and placement of the helpsystem when a menu is open
2023-04-09 12:47:44 +02:00
Leon Styhre
0f3db2fbf1
Fixed a line wrapping issue for text with blank lines that was not displayed in a scrollable container
2023-04-08 15:35:56 +02:00
Leon Styhre
deaa4e13b3
Fixed an issues where textlist entries would sometimes scroll horizontally even though they fit inside the element width.
2023-03-04 21:57:33 +01:00
Leon Styhre
d9f38dab3e
Added support for changing the saturation for font textures.
2023-03-03 22:37:39 +01:00
Leon Styhre
c9848d694b
Fixed an issue where SVG images would sometimes not get rasterized.
2023-02-16 00:00:45 +01:00
Leon Styhre
3d1261b6d2
Added support for changing the medium and large system font sizes automatically depending on screen orientation.
...
Also fixed an issue where the font size was not calculated correctly when using a vertical screen orientation.
2023-02-10 00:45:10 +01:00
Leon Styhre
304d304727
Added support for linear interpolation for font texture magnifications.
2022-12-07 18:24:00 +01:00
Leon Styhre
645b41afa4
Fixed multiple issues with text rendering for legacy themes.
2022-11-06 00:02:48 +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
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
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
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
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
84f019680d
Greatly improved text sizing and rendering.
2022-10-25 00:39:40 +02:00
Leon Styhre
16c4fb6d17
Fixed some alignment issues in CarouselComponent.
2022-10-14 18:14:15 +02:00
Leon Styhre
7e923cb9b6
Some refactoring of the OpenGL renderer and TextureDataManager.
2022-10-11 18:11:36 +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
610ac9adb3
Implemented dynamic texture allocation to the font handling.
2022-10-10 20:32:35 +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
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
f048d06b95
Fixed a text abbreviation issue.
2022-09-28 17:21:02 +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
0736192417
Fixed a text abbreviation issue.
2022-09-24 16:45:18 +02:00
Leon Styhre
2742424ca2
Some general code cleanup.
2022-09-08 18:56:02 +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
8361c4f15c
Moved the Alignment enumerator from Font to GuiComponent.
2022-09-07 19:54:55 +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
01d410867c
Moved back the wide SVG images size compensation from TextureData to ImageComponent.
2022-09-05 23:00:47 +02:00
Leon Styhre
b079421205
Changed it so that only fonts of a certain minimum size gets linear texture magnification applied.
2022-09-05 22:36:33 +02:00
Leon Styhre
e8c74450a0
Enabled linear interpolation for all font rendering regardless of resolution.
2022-09-05 00:11:53 +02:00
Leon Styhre
ce50c1121b
Enabled linear interpolation for font texture magnification when running on display resolutions at or above approximately 1920x1080.
2022-09-02 21:30:16 +02:00
Leon Styhre
9b1fb95865
Enabled linear interpolation for font texture minifications.
2022-09-02 21:03:19 +02:00
Leon Styhre
039c27fa8e
Added support for sizing SVG images arbitrarily (overriding the image aspect ratio by stretching and squashing).
2022-09-02 20:48:45 +02:00
Leon Styhre
7b279a7c73
Made SVG rasterizations slightly more accurate.
2022-08-31 21:17:13 +02:00
Leon Styhre
6126016289
Cleaned up some font-related code.
2022-08-30 19:31:57 +02:00
Leon Styhre
2c86e4f99e
Removed the deprecated SVG force rasterization flag from the cache manager.
2022-08-28 20:21:58 +02:00
Leon Styhre
48a9571609
Refactored RatingComponent to improve rendering accuracy and performance.
2022-08-28 20:11:20 +02:00
Leon Styhre
5dae37f558
Added support for caching SVG images.
2022-08-23 22:24:24 +02:00
Leon Styhre
047d080346
Fixed a small text abbreviation issue.
2022-08-21 21:24:46 +02:00
Leon Styhre
e2fb03dbf3
Fixed an issue where the tile property for the image element did not work correctly with SVG images.
2022-08-21 19:06:51 +02:00
Leon Styhre
ce217c48a4
Added support for vertical abbreviations of multiline text entries.
2022-08-21 16:33:29 +02:00
Leon Styhre
67488467c3
(Linux) The data installation directory is now excluded for themes and resources when built as an AppImage.
2022-08-20 11:30:15 +02:00
Leon Styhre
225a602a74
If the same raster image is used with different interpolation methods then these are now cached separately.
2022-08-16 22:37:36 +02:00
Leon Styhre
967b98008b
Fixed an issue where raster graphic images could get scaled incorrectly.
2022-08-16 21:04:39 +02:00
Leon Styhre
899ace3eb6
Added a manualUnloadAll function to TextureResource.
...
Also converted some variables to static inline and cleand up some code.
2022-08-14 21:31:02 +02:00
Leon Styhre
fdf63a9ad0
Fixed an issue where the 'quit' custom event would not trigger on application shutdown.
2022-05-18 22:57:03 +02:00
Leon Styhre
53ad5a3152
Fixed an issue where the texture buffer sometimes couldn't fit Chinese characters.
2022-05-09 20:12:08 +02:00
Leon Styhre
f990d91841
Reverted the previous commit.
2022-05-04 00:42:28 +02:00
Leon Styhre
f86ab2ea89
Increased the font texture size slightly.
2022-05-03 23:35:47 +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
c4cae406e9
Fixed a font loading crash caused by an insufficient font texture size.
...
Also added a preventive measure for similar crashes in the future and made some general cleanup of the font code.
2022-04-02 11:59:52 +02: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
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
ed540359c5
Updated GIFAnimComponent to a fully working state.
2022-03-05 20:56:47 +01:00
Leon Styhre
35970dd95d
(Windows) Fixed a few MSVC compiler warnings.
2022-02-11 23:45:25 +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
a443f86235
Removed a huge amount of unnecessary Window* function arguments.
2022-01-19 18:01:54 +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
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
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
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
254b00a3d8
Large refactoring to improve thread safety and improve singleton pattern usage.
2022-01-04 21:21:26 +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
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
0314b2d439
Fixed a performance regression caused by excessive mutex locks.
2021-11-18 17:20:59 +01:00
Leon Styhre
af52d9b0ac
Changed most increment and decrement operators from postfix to prefix for es-core.
2021-11-17 17:48:49 +01:00
Leon Styhre
9937476e18
Replaced some mutex locks with atomic variables.
...
Also removed an SDL audio issue workaround from AudioManager.
2021-11-16 17:49:05 +01:00
Leon Styhre
999b9a6c04
Improved thread safety in TextureData and TextureDataManager.
2021-11-15 23:33:16 +01:00
Leon Styhre
14e1b800fa
Made two optimizations in TextureData.
2021-11-07 18:18:41 +01:00
Leon Styhre
8b5386df79
Fixed an issue where corrupt SVG graphics could crash the application.
2021-11-03 17:26:19 +01:00
Leon Styhre
2f09c21d3f
Reversed a previous change that caused multiple texturing issues.
2021-10-30 17:05:04 +02:00
Leon Styhre
ee80792e0f
(Windows) Fixed two MSVC compiler warnings.
2021-10-29 20:10:43 +02:00
Leon Styhre
0dc6f1e17a
Removed the deprecated SVG scaleDuringLoad functionality.
2021-10-29 19:43:07 +02:00
Leon Styhre
58345863b3
Changed an RGBA vector getter from copy to reference to reduce CPU usage.
2021-10-26 18:23:52 +02:00