Switch from using GLEW to epoxy. The main reason is that we would like to support GL 3.2+ core contexts, and then later quite possibly GLES.
Move everything into “namespace movit”. This is a pretty hard API break, but it's probably the last big API break before 1.0, and some of the names (e.g. Effect, Input ResourcePool) are really so generic that they should not be allowed to pollute the global namespace.
Prefix include guards with _MOVIT to avoid clashes with external files.
Run include-what-you-use over all of movit. Some hand tuning.
Add a new alpha handling method, INPUT_PREMULTIPLIED_ALPHA_KEEP_BLANK. This should fix most of the problems where you only process inputs without alpha, but the framework still inserts an AlphaDivisionEffect at the end because it loses track of the blank alpha state throughout the pipeline and the output expects postmultiplied alpha. There's one important case left, though: MixEffect will always reset tha alpha state to premultiplied. We should probably fix that too at some later stage.
Add the rest of the files for the premultiplied alpha commit.
Output the graph in dot form at finalize time.
Rename set_uniforms() to set_gl_state(), and make a corresponding clear_gl_state().
Comment all of *_effect.h.
Add a new framework for 1D-LUTs via fp16 textures. Make the gamma compression and expansion effects use it.
Rename output_glsl to output_fragment_shader.
Less old-style GLSL extension use.
Move saturation out into its own effect, and hook up the control.
Actually set all the right uniforms, so we have a picture on screen.
Start actually piecing together the GLSL shaders from the effect chain.
Yet more moving of stuff around.