docs: public static Rectangle getBounds(TextLayout[] lines, Rectangle into) {
      // some font glyphs start rendering at a negative inset, blowing outside their bounding box
      // (naughty!); in such cases, we use xAdjust to shift everything to the right to ensure that we
      // don't paint outside our reported bounding box (so that someone can create a single canvas of
      // bounding box size and render this text layout into it at (0,0) and nothing will get cut off)
      float xAdjust = 0, twidth = 0, theight = 0;
      for (TextLayout layout : lines) {
        IRectangle bounds = layout.bounds;
        xAdjust = Math.max(xAdjust, -Math.min(0, bounds.x()));
        // we use layout.width() here not bounds width because layout width includes extra space
        // needed for lines that start rendering at a positive x offset whereas bounds.width() is
        // only the precise width of the rendered text
        twidth = Math.max(twidth, layout.size.width());
        if (layout != lines[0])
          theight += layout.leading(); // leading only applied to lines after 0
        theight += layout.ascent() + layout.descent();
      }
      into.setBounds(xAdjust, 0, xAdjust+twidth, theight);
      return into;
    }