use filter context drawing api

TODO:
implement QPaintEngine for different backend then remove context?