Fix most (all) bug by using a software renderer, rather than messing with the pixel data directly.