AttributedString as = buildAttributedString(ctx, e);
addGlyphPositionAttributes(as, e, ctx);
if (ctx.isDynamic()) {
layoutedText = new AttributedString(as.getIterator());
}
TextNode tn = (TextNode)node;
tn.setAttributedCharacterIterator(as.getIterator());
// now add the painting attributes, cannot do it before this because
// some of the Paint objects need to know the bounds of the text
// and this isn't know until the text node aci is set
TextDecoration textDecoration =
getTextDecoration(e, tn, new TextDecoration(), ctx);
addPaintAttributes(as, e, tn, textDecoration, ctx);
tn.setAttributedCharacterIterator(as.getIterator());
//
// DO NOT CALL super, 'opacity' is handle during addPaintAttributes()
//