The refactoring introduces a RAS_Filter2D type. Once that is in place the rest really follows as a consequence. I'll make it short. The elements are:
RAS_2DFilter -> abstract post processing action on a context
RAS_2DFIlterContext -> provides filters with access to shared informations
RAS_GLSLFilter -> a concrete filter on a glsl context
RAS_GLSLContext -> stuff needed by glsl filters
RAS_2DFilterManager -> stores, applies and manages filters, providing the shared values they need (impl both context types)
RAS_2DFilterData -> pack of values needed to transfer informations for initializers of filters
RAS_2DFilterFactory -> used by KX_Scene to create the filters that are added to filter manager. I added this to avoid polluting the code of the filtermanager, glslfilter and kx_scene with the vagaries of creating existing filters.
I did some test, the new system can succesfully replace the old one. There are a couple of things to "port" into RAS_GLSLFilter, I have to investigate a little more why the current filter system does certain things, all minor details.
I'd like to know if I'm the only one that sees an advantage in this new setting over the old one - namingly the new one has a structure that allows filters to be extended by working on filters and not on everything.