private @NotNull TextRenderer getAndCacheRenderer(Font font, FontRenderContext frc) {
      TextRenderer renderer = this.renderer;
      if (renderer == null) {
        String text = this.text;
        if (needFontFallback(font, text) && !AppMode.isRemoteDevHost()) {
          renderer = new LayoutTextRenderer(createTextLayout(text, font, frc));
        }
        else {
          if (myClipper != null) {
            renderer = new ClippedTextRenderer(myComponent, text, myClipper, (float)font.getStringBounds(text, frc).getWidth());
          }
          else {
            renderer = new SimpleTextRenderer(text, (float)font.getStringBounds(text, frc).getWidth());
          }
        }
        this.renderer = renderer;
      }
      return renderer;
    }
private @NotNull TextRenderer getAndCacheRenderer(Font font, FontRenderContext frc)