Perhaps `set_blend_func` and `set_blend_func_separate` can be combined? In C they needed different functions, but in Python we have optional args.