docs/ui/text_rendering/render_text_overview.md
RenderText’s purpose is to prepare text for text shaping, shape the text using the Harfbuzz text shaping engine, and then draw the text onto the screen using the Skia library. RenderText also has support for cursors and selections. This class is the level of abstraction for the complex world of unicode. Chrome developers should rely on it or improve it instead of developing their own solutions.
RenderTextHarfbuzz is the implementation of RenderText. We used to have platform specific implementations but have since consolidated this into RenderTextHarfbuzz.
A RenderText object can be created in a View that wants to display text. The View can set properties on the RenderText object such as the text to be displayed, whether or not the text is obscured (such as the case with passwords), word wrap behavior etc.
RenderText::Draw starts the process of drawing the text onto the screen.
We then do the following before passing the results of these steps off to Skia.