Write PNGs instead of PPMs, so that we get destination alpha. Also, ask SDL for a GL context with destination alpha.
Force the LC_NUMERIC locale temporarily to C in finalize(), to avoid problems with locales messing with %f.
Clamp alpha in MixEffect.

This struck me suddenly one evening as a fix for the issues with alpha in glow,
and seems to work incredibly well for unsharp mask, too. The rationale is
outlined in the comment in the frag.

I'll probably be adding some tests for GlowEffect to make sure that it keeps
working fine, but visual tests so far look very good. The only issue is that
with destination alpha always being in linear light (as it should be),
programs that don't blend in linear light, like GIMP and ImageMagick,
get somewhat dull-looking results with e.g. glow.
Add unit tests for GlowEffect.
Initialize pixel_data in FlatInput to NULL.

Doesn't matter in practice, but will cause cleaner crashes if people
forget to do set_pixel_data().

Found by Coverity Scan.
Another NULL initializer, mostly to get Coverity to be quiet.
Set pixel_data[] to NULL in YCbCrInput as well.

Like the previous one, mainly for cleaner crashes.
Again, found by Coverity Scan.
Optimize away duplicate conversion nodes.

Sometimes an effect can be used by two other effects that both demand
the same conversion. If so, we should simply insert a conversion after
that effect and connect _all_ outputs to that conversion, since
conversions to linear/sRGB/premultiplied never hurt for us.

Add unit tests for the gamma and colorspace cases. I could have added
for the alpha case, too, but it got very tedious. :-)
Add some asserts to SingleResamplePassEffect, to make sure the resolutions makes sense.
Another case of NULL initialization to keep Coverity happy.
Remove two unused members from EffectChain.

Indirectly found by Coverity Scan.
Add some parameter asserts in DitherEffect, too.
Fix a typo in the README.
Make the internal effects private to EffectChain.

ColorspaceConversionEffect, DitherEffect, GammaExpansionEffect and GammaCompressionEffect
are all supposed to be used by EffectChain only, so make them private; I've had
reports of users trying to use these directly, leaving the framework in a confused state.
Ask Google Test not to use exceptions.

Gives us slightly cleaner shutdown on error. Found by Coverity Scan.
Link against -lpng, since we can now write screenshots in PNG format.
Don't override GTEST_DIR if it already is set.
Use NULL instead of png_voidp_NULL.

Fixes a compile error on OS X, reportedly.
Check return value from SDL_Init().
Add sdl-config --cflags and --libs when compiling.