Thanks, @galaticalmonkies for taking the time to clean this up. I don't know how to use Git effectively myself, so I'm not much of a help in this issue. I do appreciate that you're taking the effort to grapple with it :-)

As a general preference I'd simply fork the main Snap repo, not some fork of a fork, because it looks to me that it's more likely and easier to keep direct forks in synch, than forks of forks. Gosh, I totally mistrust Git myself, and this makes me think I know why. See, there's really only one issue with your actual code (graphic effects not kicking in when you redraw the sprite for some other reason than applying graphics effects - and by now you've addressed that issue yourself), and the grave issues are all a result of some Git magic, so I realize that most of my comments were probalby unfair to you, because you didn't even decide to take out anything.

It'll be fun to have your graphics effects in Snap, and I love how you've made them really fast without using any third-party libraries or Web-GL and such. That's *exactly* how I envisioned them to be, and it's really, really cool of you to have pulled that off!

I've commented on your commit that fixes the "redraw" cases. It's just a slight remark about avoiding a piece of state that can get out of synch ("graphicsChanged"). Personally, I wouldn't mind if you simply left checking for "graphicsChanged" altogether (since you're checking in every graphics effect code anyway), but that's up to you. I'm only suggesting to use a function (a higher-order one, even, hehe) instead of a state-doubling property.

Looks like this is *almost* ready to be pulled!