"GandK-Geoff" wrote:
Thankfully, we discovered a different method of solving our problem -- binary editing the palette of pre-made shape images -- which is (shameless plug) open sourced as part of libRokuDev (http://github.com/rokudev/librokudev).
Actually, a few weeks ago I was revisiting this idea, and determined that I believe I could indeed make a pixel level canvas, and even one with a near constant (and
comparably short) time to update.
The trick is that PNG data sections require deflate compression, but there's nothing to say that the deflate compressed data has to actually do lots of encoding. At it's simplest level with the least compression, it's basically plain content with a few deflate header bits thrown in. Since we've already done a lot of work rewriting PNG palette and transparency header values, and have utilities to identify and rewrite portions of a PNG file, writing a new iDAT section would be trivial. We can just write individual pixels in a PNG file, and then display the file.
Yes, it's a crazy ugly hack. But if you really want a pixel level canvas that doesn't take multiple seconds to set a single pixel (which is DOES when you start putting a lot of items on the screen), this would work. I haven't bothered because I'm convinced Roku has something better in store, and have more immediate things to code on...
Anyone know if the low-level hardware can accelerate OpenGL ES? Or would Roku have to use a software renderer such as Mesa? Either way, I think I'd be in heaven.
If the hardware specs I found for I thought corresponded to the old hardware are correct, it mentioned 2D acceleration but nothing about 3D. Don't know about current hardware, but it would be a cool addition. I'm sure if we all make enough games for the platform we can influence future hardware designs...
😉
-- GandK Labs
Check out Reversi! in the channel store!