Reads surface array data from a specified compressed filer stream, creates surfaces, and returns an array of smart pointers to the created surfaces.