I just put up my new experimental channel "Electric Sheep", a channel for reading books on your television. Here's the announcement post in the general forum:
http://forums.roku.com/viewtopic.php?f=28&t=54807I won't repeat everything there, but here are some development notes.
The main idea is to render PNG files on the server from a source EPUB file. I couldn't find a way to do that directly, so right now I'm first rendering to from EPUB to PDF, then rasterizing from PDF to PNG. After fiddling around with the caching algorithm it seems to work pretty well on my home setup.
I started with roImageCanvas, but that turned out to be too slow. Turning pages took a large fraction of a second, which made the channel feel very annoying. Even with caching the PNG files into the tmp:/ local filesystem it was slow.
Then I switched to roScreen and drawing bitmaps. That was actually slow at first. The trick to make that faster was to pregenerate the bitmaps before they were needed. My first implementation was fast, but stopped working after 15 pages. There's a limit of how many giant bitmaps you can have in memory... After releasing older bitmaps it's fast and keeps working after 15 pages (at least on my setup). I call it "FastFlick(tm)" page turning technology
🙂