http://www.dje.me.uk/misc/PostProcessor.zip
(project is in XCode and might/might not work as-is. just stick all the files in one project, add Irrlicht and build)
It's a collection of post processing effects, which regresses on old hardware, works in an optimized way and is easy to setup and maintain in the main code. It has:
* Black (a test shader which shows only black)
* Direct (a way of getting anti-aliasing - combine these to get 2x, 4x, 8x, etc.)
* Darken (multiplies maintaining black=black)
* Lighten (multiplies maintaining white=white)
* Range (narrows contrast)
* Invert (reverses rgba channels)
* Tint (converts to monochrome and adds tint, preserves black & white)
* Greyscale (Tint with grey)
* Sepia (Tint with brown)
* Curves (raise/lower red, green, blue. Preserves black & white)
* Noise (Pseudo-random noise, changes each render. Random function is poor)
* Coloured noise (like Noise, but red, green, blue are separate)
* Horizontal blur (basic 5-sample blur)
* Vertical blur
* Bi-directional blur (combines above 2)
* Linear blur
* Radial blur (with movable centre and x/y blur level)
* Radial beam (kind'a like sun rays, but not high enough quality to pass for them. Inspired by the halo currently-online globe)
* Rotational blur
* Horizontal & Vertical blurring by depth (background blurred)
* Horizontal & Vertical blurring by depth (foreground blurred - some problems)
* Depth of field (background & foreground blurred)
* Depth (converts alpha channel to rgb)
* Heat Haze (Adds a haze in certain parts of the render, based on a second texture)
* Heat Haze with depth (Heat Haze, but with the size of the effect dependent on the distance from heat source to object)
* Overlay (adds one texture to another with a multiplier)
* Negative Overlay (subtracts one texture from another with a multiplier Warning: Not optimized. Will cause serious performance loss)
* Motion blur (by past frames, no interpolation)
* Ambient occlusion (based on some code on these forums, heavily mutilated)
* Bloom (a mix of Lighten, Blur and Overlay)
* Gloom (like bloom, but dark. a mix of Darken, Blur and Negative Overlay)
* Night Vision (makes a grainy, green tinted, brightened view. a mix of Range, Blur, Noise and Tint)
* Transitions (a simple blend-by-texture is included and others can easily be made by subclassing IPostProc)
* Lens flare (uses pixel testing, so can be slow)
* Custom - Supply a gl and directX pixel shader, from code or external file, and specify a shader version to add any effect, with up to 4 input textures and 8 float parameters
* Old Monitor (provided as a custom effect, not part of the main code. An old, pixelated, fuzzy, distorted, de-saturated monitor. Fairly intensive so not recommended for real use)
That's over 30 built-in effects!
See the main.cpp file for an example of how to use it. It's really easy to add, change and remove effects at runtime, and each effect can be independently disabled/enabled, and has a quality setting to control how much processing power it uses.
There are a couple of limitations;
* Shaders are OpenGL only. I'm on a mac so DirectX isn't a priority. (The code does support directX - all that's needed is the shader code)
* Alpha channel gets messed up by some of the shaders. Not a concern unless you're trying to transfer data with it.
* You can't add an effect between 2 others easily (though it is possible). I'm not sure how I should implement this.
Hope this helps someone

latest update added: too much to list again - see the thread. Page 5 has the latest update.