The Geometry of Open-String Partition Functions