cairo: add compute extents with offset