Drop WindowPaintData::shader
Currently, effects can set a custom shader in WindowPaintData::shader
. This doesn't scale well. For example, it's not going to work with YUV or GL_TEXTURE_EXTERNAL_OES. We don't handle either at the moment, but still, it's worth getting rid of the shader property.
The only user of WindowPaintData::shader
is the invert effect. It needs to paint the scene in an offscreen texture and then do its thing in a shader.