renderNode method

  1. @override
  2. @override
void renderNode(
  1. RenderInfo<Renderinstruction> renderInfo,
  2. RenderContext renderContext,
  3. NodeProperties nodeProperties
)

Renders text for a node.

Implementation

@override
/// Renders text for a node.
@override
void renderNode(RenderInfo renderInfo, RenderContext renderContext, NodeProperties nodeProperties) {
  if (renderContext is! UiRenderContext) throw Exception("renderContext is not UiRenderContext ${renderContext.runtimeType}");
  if (renderInfo is! RenderInfoNode) throw Exception("renderInfo is not RenderInfoNode ${renderInfo.runtimeType}");

  MappointRelative relative = nodeProperties.getCoordinatesAbsolute().offset(renderContext.reference).offset(0, renderinstruction.dy);
  if (paintBack != null) {
    ParagraphEntry entry = ParagraphCacheMgr().getEntry(renderInfo.caption!, textPaint, paintBack!, renderinstruction.getMaxTextWidth());
    renderContext.canvas.drawTextRotated(entry.paragraph, renderInfo.rotateRadians, relative);
  }
  if (paintFront != null) {
    ParagraphEntry entry = ParagraphCacheMgr().getEntry(renderInfo.caption!, textPaint, paintFront!, renderinstruction.getMaxTextWidth());
    renderContext.canvas.drawTextRotated(entry.paragraph, renderInfo.rotateRadians, relative);
  }
}