Testbuilds: set <texture background="true">$SOMETHING</texture> as default
#1
Hi Skinners.

in order to solve the gui issue of not showing (local) art when the source media is not available (ref. https://github.com/xbmc/xbmc/issues/21744),
as discussed with sarbes (on slack in skinning), a possible solution could be to set 
Code:
background="true"
for any <texture> as the default. so force every texture to be loaded asynchronously.

though there are concerns this might result in texture pop in's or have other drawbacks. but it shouldn't happen with estuary since we do fades between textures there. i'm not sure about other skins, so would really appreciate if you guys could assess whether the attached testbuilds have any negative impact with your skins.

thanks in advance, Howie Smile


links to android-v7a, android-arm64-v8a, win64 and ios64

http://mirrors.kodi.tv/test-builds/andro...bi-v7a.apk
http://mirrors.kodi.tv/test-builds/andro...64-v8a.apk
http://mirrors.kodi.tv/test-builds/windo...nd-x64.exe
http://mirrors.kodi.tv/test-builds/darwi...-ios64.deb
Reply
#2
i will test for sure, but i have a question.

Why wouldn't it be better to advise skinners to overflew the image controls their skins where it really should be set to true, rather than overflew the images, where it should be the current default false ?
( and may update the wiki for the image control type )

I mean, most of the images are not listitem.*thumb|icon|art(*) related, or misunderstood i something what will be changed in the test builds ?

EDIT: and it terms "show art,when storage not connected", artwork dump ( by @rmrector )addon provides a function to preload local images to 'texture chache' which should also solve the 'not connected device' related issue.
- not correct

Sorry, if i confuse or a pita...
Skins |  Titan M O D   •   S W A N (WIP)
Reply
#3
@mardukL sorry if i was unclear.. for testing purposes it's not needed to review or adjust your skin-files. with these builds it doesn't matter if the background attribute is explicitly set.

Code:

<texture background="true"> </texture>
<texture background="false"> </texture>   or even
<texture> </texture>

will all be hardly handled as if they were background="true" because that way we were able to resolve that issue, https://github.com/xbmc/xbmc/pull/21749/files
it may not be the final solution but interesting for us to know if there are any glitches with this approach.
maybe @sarbes could chime in if i forgot to mention something else.
Reply
#4
(2022-08-23, 14:32)howie-f Wrote: will all be hardly handled as if they were background="true"

ah.thanks yes it helps me indeed to understand !
Skins |  Titan M O D   •   S W A N (WIP)
Reply
#5
the only thing i found currently ( just tested on esturary ,os win11):

preassume external source not connected:
- default icons show up as usual when not connected , but shortly flicker on first focus ( a few? ms )
- in that short time the default*icon.png is invisible ( in place of focuseditemlayout a
'poster' you can see the fanartbackground but without the fanartbackgroundoverlay, like the overlay is snippet out)
which not happens in the 'regular' nightly

no time for a log atm.as i am afk.
Skins |  Titan M O D   •   S W A N (WIP)
Reply
#6
that was quick, thanks a lot
Reply
#7
(2022-08-23, 17:48)howie-f Wrote: that was quick, thanks a lot

HI, again. i think everything is fine.

The flicker is mostly caused to the 'fallback=*' attribute ( as it needs a bit time to load, tough it is'nt 'preloaded' when it comes to first focus (<focusedlayout>) .
But the Flicker is'nt in the latest nightly. ( the xml 'View_53_Shift.xml' are match in booth builds )

https://streamable.com/5obqwp

In deeper.
this variable (ShiftThumbVar) is fine.
xml:
<variable name="ShiftThumbVar">
        <value condition="!String.IsEmpty(Listitem.Art(poster))">$INFO[Listitem.Art(poster)]</value>
        <value condition="ListItem.IsParentFolder">DefaultFolderBackSquare.png</value>
        <value condition="String.IsEmpty(Listitem.Thumb) + [String.IsEqual(listitem.dbtype,album) | String.IsEqual(listitem.dbtype,artist)]">DefaultAudio.png</value>
        <value condition="ListItem.IsFolder + String.IsEmpty(ListItem.Thumb)">DefaultFolderSquare.png</value>
        <value>$INFO[ListItem.Thumb]</value>
    </variable>

The conditions match, at first !String.IsEmpty(Listitem.Art(poster)) is true, but it could't acces, therefore the image controls fallback="*" comes in.
log:

2022-08-24 09:28:57.505 T:3128    DEBUG <general>: CTextureCacheJob::GetImageHash - unable to stat url H:\data\filme\The Proposition - Tödliches Angebot (2005)\The Proposition - Tödliches Angebot (2005)-poster.jpg


Though i am just wondered ,why it works in itemlayout (preload is fine) and focusedlayout (preload is 'buggy?', as it start cache again on focus, than stays till 'preloadcache' is cleared refreshed)

In generell, when storage connected/avail, i could not notice major issues or differences myself.
Skins |  Titan M O D   •   S W A N (WIP)
Reply

Logout Mark Read Team Forum Stats Members Help
Testbuilds: set <texture background="true">$SOMETHING</texture> as default0