"NewManLiving" wrote:
I do not create or move any sprites. My grid is the only sprite. One large sprite. When the user scrolls I draw the new row into the hidden virtual buffer and then its all region offsetting from there.
Well that's certainly a key distinction. I assumed you were using the compositor and indvidual sprites to represent each poster. I hadn't really considered using it the way you are, as it seemed logical that each poster would be a separate sprite. Interesting...
"NewManLiving" wrote:
I have a poster type grid which is not a dog.
In my case, it's not posters, but lots of text and updating progress bars with video playing on the same screen. It's not a traditional grid, but a similar concept. The video decoding in the background is the primary culprit, as that eats up a ton of CPU cycles. The "dogged-ness" of the grid is really only apparent on the low end Rokus, and is greatly mitigated by stopping the video. It runs pretty smoothly on the Roku 3, Roku TV, and streaming stick even with video playing. There are also a lot of web requests and processing go on "in the background"... I *really* wish Roku would give us a background worker thread to do stuff like that...
"NewManLiving" wrote:
As far as text that is also drawn only once.
In my case, the text is updating regularly, which also has a noticeable effect. I also draw it to a transparent bitmap to workaround the anti-aliasing bug with DrawText.
"NewManLiving" wrote:
As to memory, my framework knows how to unload non-essential sprites and recreate them.
I have the same, but as I'm having to create in-memory bitmaps for the text and the individual sprites, I'm using up almost twice as much memory as I would if I were to draw directly to the screen. And as mentioned above, I have video running in a window at the same time, which greatly reduces the memory available to me.
I have since come up with what I think is a really clever way to address all of the issues above, but it's a significant undertaking that I don't have the time for at the moment. Once I do, I'm excited to try it out...
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)