Ich nehme an, du lädst jedes Mal z.b. bei Punkt 4 alle Cover neu? Falls ja, könntest du dein Array mit den Texturen auch als RingBuffer behandeln und nur intern eine Shift-Value verwalten, die angibt, an welcher Stelle des Arrays der "echte" Anfang zu finden ist. Dein Carousel renderst du dann nicht statisch von
Low(Array)
zu
High(Array)
, sondern einmal von
Array[StartIndex]
bis
High(Array)
und dahinter noch einmal von
Low(Array)
bist
Array[StartIndex - 1]
.
Sowas in der Art:
https://en.wikipedia.org/wiki/Circul...ircular_buffer
Wobei du dir das Ende nicht merken musst, da bei dir die leeren Elemente ja mit der NoTexture aufgefüllt werden.