AttributedString as = buildAttributedString(ctx, e);
addGlyphPositionAttributes(as, e, ctx);
if (ctx.isDynamic()) {
laidoutText = new AttributedString(as.getIterator());
}
TextNode tn = (TextNode)node;
elemTPI.clear();
// Add null TPI objects to the text (after we set it on the
// Text we will swap in the correct values.
addNullPaintAttributes(as, e, ctx);
// Install the ACI in the text node.
tn.setAttributedCharacterIterator(as.getIterator());
// Now get the real paint into - this needs to
// wait until the text node is laidout so we can get
// objectBoundingBox info.
TextPaintInfo pi = new TextPaintInfo();
setBaseTextPaintInfo(pi, e, node, ctx);
// This get's Overline/underline info.
setDecorationTextPaintInfo(pi, e);
// Install the attributes.
addPaintAttributes(as, e, tn, pi, ctx);
if (usingComplexSVGFont) {
// Force Complex SVG fonts to be recreated, if we have them.
tn.setAttributedCharacterIterator(as.getIterator());
}
}