Make Movit work in premultiplied alpha.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 14 Jan 2013 01:27:35 +0000 (02:27 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 14 Jan 2013 01:27:35 +0000 (02:27 +0100)
commitcaa05550e868db406e4b54e69d60b5573f59cb60
tree8a055f9bbd67736ede7646dea03e1465200a0249
parent96591ba1b5bffa57724fa90e13d1f2cdc810ccd5
Make Movit work in premultiplied alpha.

This is a pretty big change, even though the most visible change right now
is that OverlayEffect looks better in the edges of upscaled material
(which you won't really notice too much, given that our handling of
different resolutions already sucks). Since most material is going to
assume postmultiplied alpha, we need to track the status around the graph
pretty much as we already do with gamma and colorspaces, so it's quite
a lot of new code (and associated test complexity). It really does look
better, though.

Negative sides: MixEffect has gotten less flexible since it now also
handles the alpha; for instance, you can't really use it to subtract
things the same way anymore. Also, I think the glow effect has been broken by
the changes to MixEffect, so I'll need to fix it and then add a test so it
doesn't break again.
alpha_division_effect.cpp [new file with mode: 0644]
alpha_division_effect.frag [new file with mode: 0644]
alpha_division_effect.h [new file with mode: 0644]
alpha_division_effect_test.cpp [new file with mode: 0644]
alpha_multiplication_effect.cpp [new file with mode: 0644]
alpha_multiplication_effect.frag [new file with mode: 0644]
alpha_multiplication_effect.h [new file with mode: 0644]
alpha_multiplication_effect_test.cpp [new file with mode: 0644]
blue.frag [new file with mode: 0644]