还没整理,简单的把总结放这里:

  • 绘制动作

FreetypeFontScaler.getGlyphImageNative()
FileFont.getGlyphImage()
FileFontStrike.getGlyphImagePtrs()
{
images[i] = setCachedGlyphPtr(glyphCode, glyphPtr);
}
GlyphList.mapChars():位图信息保存在images

sun.java2d.loops.DrawGlyphList.DrawGlyphList
DrawGlyphListFunc
具体调用是:
pPrim->funcs.drawglyphlist()

  • 初始化流程

NativePrimitive *pPrim;
GetNativePrim()
反射字段pNativePrim
JNU_GetLongFieldAsPtr

GraphicsPrimitiveMgr.registerNativeLoops
RegisterPrimitives
registerNativeLoops

在RegisterAnyInt初始化中完成。
AnyInt.c
NativePrimitive AnyIntPrimitives[] = {
//REGISTER_FILLRECT, REGISTER_PRIMITIVE, 1
    REGISTER_SOLID_FILLRECT(AnyInt),

//REGISTER_FILLSPANS, REGISTER_PRIMITIVE, 1
    REGISTER_SOLID_FILLSPANS(AnyInt),

//REGISTER_PRIMITIVE, 2
    REGISTER_SOLID_PARALLELOGRAM(AnyInt),

//REGISTER_LINE_PRIMITIVES, REGISTER_PRIMITIVE, 5
    REGISTER_SOLID_LINE_PRIMITIVES(AnyInt),

//REGISTER_FILLRECT, REGISTER_PRIMITIVE, 1
    REGISTER_XOR_FILLRECT(AnyInt),

//REGISTER_FILLSPANS, REGISTER_PRIMITIVE, 1
    REGISTER_XOR_FILLSPANS(AnyInt),

//REGISTER_LINE_PRIMITIVES, REGISTER_PRIMITIVE, 5
    REGISTER_XOR_LINE_PRIMITIVES(AnyInt),

//REGISTER_DRAWGLYPHLIST, REGISTER_PRIMITIVE, 1
//字体使用这个进行绘制。
    REGISTER_SOLID_DRAWGLYPHLIST(AnyInt),

//REGISTER_DRAWGLYPHLIST, REGISTER_PRIMITIVE, 1
//REGISTER_DRAWGLYPHLISTAA, REGISTER_PRIMITIVE, 1
    REGISTER_XOR_DRAWGLYPHLIST(AnyInt),
//共19个
};

DEFINE_SOLID_DRAWGLYPHLIST是定义在LoopMacros.h的宏。
具体来说:
NAME_SOLID_DRAWGLYPHLIST

JDK绘制文字的流程与代码分析相关推荐

  1. 直播和短视频美颜sdk的开发流程、代码分析

    目前,美颜技术是提高视频质量的重要手段之一,特别是短视频和直播两个行业.本文将介绍其开发流程和代码分析. 一.美颜SDK的开发流程 1.需求分析 首先我们需要明确的一点就是"需求" ...

  2. Security工作流程及代码分析

    Spring Security工作原理 在了解了Security几个核心类的概念之后,我们梳理一下Security的工作原理. 本文将要分析的几个问题 security的工作流程,security的几 ...

  3. 【Android SDM660源码分析】- 02 - UEFI XBL QcomChargerApp充电流程代码分析

    [Android SDM660源码分析]- 02 - UEFI XBL QcomChargerApp充电流程代码分析 一.加载 UEFI 默认应用程序 1.1 LaunchDefaultBDSApps ...

  4. python画直方图代码-Python绘制直方图及子图的方法分析(代码示例)

    本篇文章给大家带来的内容是关于Python绘制直方图及子图的方法分析(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.直方图的绘制也需要用到matplotlib下的py ...

  5. 【鸿蒙OS开发入门】13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解

    [鸿蒙OS开发入门]13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解 一. /etc/init.cfg 系统默认cfg:启动lo回环网卡 1.1 init.Hi35 ...

  6. USB NCM usbnet 枚举流程代码分析

    USB NCM usbnet 枚举流程代码分析 一.cdc_ncm.c 1.1 [id_table]struct usb_device_id结构体 1.1.1 match_flags 设备类型 1.1 ...

  7. Unity3D案例太空射击(Space Shooter)流程介绍与代码分析(上)

    最近开始接触游戏制作,用Unity制作一些简单的游戏进行入门.这几篇博客总结了Space Shooter的制作流程,并对代码进行了分析.一是方便自己日后进行回顾与补充,二是为了让让更多的游戏爱好者接触 ...

  8. 【SemiDrive源码分析】【X9芯片启动流程】21 - MailBox 核间通信机制介绍(代码分析篇)之 Mailbox for Linux 篇

    [SemiDrive源码分析][X9芯片启动流程]21 - MailBox 核间通信机制介绍(代码分析篇)之 Mailbox for Linux 篇 一.Mailbox for Linux 驱动框架分 ...

  9. 【SemiDrive源码分析】【X9芯片启动流程】20 - MailBox 核间通信机制介绍(代码分析篇)之 MailBox for RTOS 篇

    [SemiDrive源码分析][X9芯片启动流程]20 - MailBox 核间通信机制介绍(代码分析篇)之 MailBox for RTOS 篇 一.Mailbox for RTOS 源码分析 1. ...

  10. 【鸿蒙OS开发入门】06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 启动init进程

    [鸿蒙OS开发入门]06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 一.head.S 启动start_kernel() 1.1 start_kernel() ...

最新文章

  1. 交叉熵损失函数公式_交叉熵损失函数对其参数求导
  2. 页面无刷新ajax上传文件--模拟iframe,超简单
  3. php opcodevld,利用PHP扩张vld查看PHP opcode
  4. 3.改变 HTML 内容
  5. SQL Server中行列转换 Pivot UnPivot (转载)
  6. android获取子线程id,Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID
  7. windowbuilder安装
  8. C++——有关chrono库的duration
  9. 封装的ADO.NET对数据库操作经典类
  10. Linux 打包和压缩
  11. mac下 home-brew安装及php,nginx环境安装及配置
  12. # 异运算_一年级数学:3000道20内纯进、退位口算题,每天100道日新又月异
  13. 13.企业应用架构模式 --- 对象-关系元数据映射模式
  14. 开源ONE兔3.0社交社区交友婚恋视频即时通讯双端APP原生源码
  15. EXCEL中实现经纬度距离计算、高斯坐标转换、GIS数据导出等功能
  16. 云计算机教室详细建设方案,计算机教室更新建设方案.doc
  17. 【线性系统理论】0.线性系统基本概念(1)
  18. 关于扫码点餐多人实时共享订单的思考
  19. R语言利用openxlsx包输出EXCEL报告
  20. Python与Anaconda、Jupyter Notebook与Pycharm

热门文章

  1. 面部捕捉技术_为什么选择魔神运动捕捉系统?
  2. ssm怎么自动排列序号6位数_小学数学1~6年级知识薄弱点应对方法汇总,建议收藏!...
  3. 在系统可编程器件一般使用计算机,eda技术与vhdl复习练习题
  4. html+placeholder+兼容问题,placeholder属性做兼容性处理
  5. android 获取emui版本,华为手机为什么有EMUI版本和Android版本?
  6. db powerdesign CDM、LDM、PDM、OOM的区别
  7. 数据库事务4种隔离级别及7种传播行为(三)
  8. NOI.AC NOIP模拟赛 第四场 补记
  9. 使用Ahk2Exe工具将AutoHotKey脚本打包到Windows可执行文件
  10. mssql 获取自增列起始及增量