Sunday, July 25, 2010

The 90% theorem.

I can complete 90% of a version 1 at 100% speed, then the remaining 10% at 0-10% speed.

Yeah, I haven't worked on multicrop for a while now. Been playing around with ScrollDem. Interest seems very low, but I'ma carry on with it, 'cause I use it.

At the moment, it loads up a folder full of files, pads them with zeroes if necessary, then lets you scroll smoothly though them. There's a glitch with doublebuffering which I've still not been able to figure out how to squash, but it doesn't really affect the program's operation, and seeing as doublebuffering makes the whole thing run alot better, I'm not too fussed.

A much bigger problem is that because I'm loading up to 129 images, all of which can be over 5k*5k, and then they're all being converted to uncompressed bitmaps, or whatever they are, in memory, I use ALOT of RAM. My moderately sized set of images (smaller than 1920*1080) chewed up just under 1GiB of memory, and the features I had in mind for future development of the program will double or triple that number, in the program's current state.

The solution that looks the simplest at the moment is only keeping a few in memory at once, and loading an unloading images dynamically, but that's gonna be a bit of a major restructure, and I'm pretty sure that with the larger files, it'll be hella CPU intensive. I also think it'll need to be done with threading to maintain the "smooth" aspect of the program, but then that introduces alot more kerfuffle with potentially blitting a surface that doesn't exist, if someone scrolls too fast.

Not to mention threads are a giant bitch to implement. Especially when I'm this far along.

No comments: