v22 Changes to the skinning engine for Kodi P*
#1
As for every new version, there have been some changes to the skinning and rendering engine.

Rendering
- GL/GLES: font rendering improved (no more jitter)
- GL/GLES: implemented front to back rendering
- GL/GLES: improved screen clearing behavior at the start of each frame
- GL/GLES: added anisotropic filtering support

General improvements:
- The engine now culls elements which are outside the rendering boundary

New Infolabels:
- System.PVRCount (details)
- ListItem.BackendInstanceName (details)

Please keep this thread clean. It should be an easy overview for skinners who are updating their skin for Kodi.
For discussions / feature requests / bug reports, please find (or create) the appropriate thread in the skin development forum.
Reply
#2
2024-4-21 GL: font rendering improved (no more jitter)

The geometry setup for text strings has been improved. Vertex processing is now being done on the GPU, instead of the CPU. Especially zooming will look smoother. Shadow placement and alignment when rotating will look better.

PR: https://github.com/xbmc/xbmc/pull/24605

2024-4-24 GLES: font rendering improved (no more jitter)

Same as above, but for GLES.
PR: https://github.com/xbmc/xbmc/pull/25033
Reply
#3
2024-4-8 GL/GLES: added anisotropic filtering support

When enabled in the advanced setting, a GPU might apply a better texture filter when viewing an element at a glancing angle. The effect is highly vendor dependent and might introduce a performance degradation.

PR: https://github.com/xbmc/xbmc/pull/24841
Reply
#4
2024-4-20 Cull GUI elements not in scissor bounds

The engine now culls elements which are outside the rendering boundary. For example, text outside of the view frustum (i.e. outside of the active screen area) will be culled before a drawcall is emitted. This saves CPU and GPU resources.

PR: https://github.com/xbmc/xbmc/pull/23022
Reply
#5
2024-4-28 GL/GLES: implemented front to back rendering

Opaque elements are now rendered from front to back, if enabled via an advanced setting. This is saving resources in otherwise overdrawn areas. There should be no visual changes.

PR: https://github.com/xbmc/xbmc/pull/22919


2024-4-28 GL/GLES: improved screen clearing behavior at the start of each frame

The same PR also changes details of the screen clearing behavior at the start of the frame. Please make sure to set a background color, if you don't draw over the whole screen. Otherwise, the content of the background is undefined for performance reasons, and might contain junk.

PR: https://github.com/xbmc/xbmc/pull/22919
Reply
#6
2024-04-29 New InfoLabels to identify multiple PVR Clients

System.PVRCount
- If evaluated as a string or integer returns the count of enabled PVR clients. If evaluated as a Boolean, returns 'true' if the enabled PVR client count is greater than 1. (Boolean option deleted from merged PR)

ListItem.BackendInstanceName - Returns the name of the PVR client instance for the associated list item.
Reply
#7
(2024-04-29, 23:57)scott967 Wrote: 2024-04-29 New InfoLabels to identify multiple PVR Clients

System.PVRCount
- If evaluated as a string or integer returns the count of enabled PVR clients. If evaluated as a Boolean, returns 'true' if the enabled PVR client count is greater than 1. (Boolean option deleted from merged PR)

ListItem.BackendInstanceName - Returns the name of the PVR client instance for the associated list item.
Update: https://github.com/xbmc/xbmc/pull/25159

Renamed: System.PVRCount (int) -> PVR.ClientCount: Number of PVR clients enabled.

Removed: System.PVRCount (string)

Renamed: ListItem.BackendInstanceName (string) -> ListItem.PVRInstanceName
: If selected item is of type PVR (recording, timer, EPG), the name of the instance of the PVR client add-on, as specified by the user in the add-on settings. Empty if the PVR client add-on does not support multiple instances or item is not of type PVR.

Added: ListItem.PVRClientName (string): If selected item is of type PVR (recording, timer, EPG), the name of the PVR client add-on, as specified by the add-on developer. Empty if the item is not of type PVR.
Reply
#8
https://github.com/xbmc/xbmc/pull/25142

Added: ListItem.ChannelLogo (string): The path for the logo of the currently selected radio or TV channel, if available (PVR).

Added: VideoPlayer.ChannelLogo (string): The path for the logo of the currently playing TV channel, if available (PVR).

Added: MusicPlayer.ChannelLogo (string): The path for the logo of the currently playing radio channel, if available (PVR).
Reply

Logout Mark Read Team Forum Stats Members Help
Changes to the skinning engine for Kodi P*0