OK makes sense now
[...] it also forces those 2 animations to allocate resource (load textures) as soon as each item gets added [...]
Hi Andy,
good to see you stepped into this - as you probably know the code best
The easiest probably is to follow the different approaches in facadeView.Add(item) - see https://forum.team-mediaportal.com/...erely-slows-down-facadeload-90020/#post686744 and compare what happens when adding FS vs. CF.
If I remember right, FS doestn't load even the 30 frames when an item is only added - this happens only if FS is visible and needs to be rendered - but I might be wrong, it's long ago I looked into the code. Anyway, I am very happy you look into it, because it's a really nice new view and I look forward to reactivate it.
While looking through the coverflow and filmstrip implementations I notice that filmstrip frees memory on "cards" that are not rendered in the window - e.g., if FS only renders 5 cards and the card collection has 100 items then the other 95 cards (those that are not rendered) have their GUIImages released at the bottom of the render loop. As the FS scrolls the new cards coming into view have their GUIImages created and allocated just in time. While I not sure of how the performance of FS is affected by this I notice on my test system that CF is severely affected with this memory management strategy. CF is sensitive to the render timePassed for proper animation and continuous GUIImage creation/allocation degrades the presentation. The result is that CF does not implement the memory management strategy as in FS. This means that the CF view uses more memory since all of the card GUIImages remain in memory while the view is rendered (each card GUIImage is created/allocated lazily so you may notice degraded animation performance while your scroll right the first time).
My concern is that for very large collections the amount of memory being used may reach levels that severely affect the overall performance of MP -- I'm open to strategies that could help reduce memory use while maintaining animation performance.