Summary of changes:
- Use QVector to store colors
- Add Q_OBJECT macro
- Port away from QRegion::rects
- Fix coding style
- Use default member initialization
- Use nullptr
- Reserve rects in paintXrender
The behavior of this effect haven't been changed, it still acts as before.