Make function pointers NULL when nothing needs to be done. Pass target pixels to dither and matrix functions so that we can later make them operate on the target buffer memory directly.