Separates creating and filling surfaces into static functions that can be reused from the different RasterizerCache methods.