A software rasterizer for practice