经过前面4篇博文的分析,现在对于绘制流程是清楚了。绘制字符需要一个字体图像,这个字体图像是如何加载的呢?我们看看加载流程:
- SunGraphics2D.drawChars()
- ValidatePipe.drawChars()
- GlyphListPipe.drawChars()
- SunGraphics2D.getFontInfo()
- SunGraphics2D.checkFontInfo()
- TrueTypeFont(Font2D).getStrike()
- TrueTypeFont(Font2D).getStrike()
- TrueTypeFont(FileFont).createStrike()
- FileFontStrike()
- FreetypeFontScaler.createScalerContext()
调用本地函数:createScalerContextNative()
从这里开始,进入C层。
- freetypeScaler.c Java_sun_font_FreetypeFontScaler_createScalerContextNative
至此,字体相关的上下文产生完成,下一步虔可以加载字体图像了。