摘要:
(6)GetGlyph和GetBaseline TFontGlyphManager是一个抽象类,在不同平台上的实现是不同的,以Windows为例,在FMX.FontGlyphs.Win.pas文件中定义了: DoGetGlyph的实现代码如下: DoGetBaseline的实现代码直接返回了FBas 阅读全文
摘要:
(5)UpdateCharRec 该函数的源码分析如下: 其中2个重要的函数是: TFontGlyphManager.Current.GetGlyph TFontGlyphManager.Current.GetBaseline 阅读全文
摘要:
(4)DoDrawLayout DoDrawLayout函数的源代码分析如下: 一个重要的函数数:AddOrGetChar,获取字符处理对象,调用了UpdateCharRec函数。 阅读全文
摘要:
五、TTextLayoutNG 在FMX.TextLayout.GPU.pas文件中,实现了几个基础功能,其中: (1)渲染单元 在TextLayout中,每一批同字体和颜色的1~n个字符,组成一个最基本的渲染单元TGPURun,1~n个渲染单元构成一行(TGPULine),1~n行构成一帧(Fra 阅读全文
摘要:
三、TControl FireMonkey重写了TControl的代码,实现了众多接口,如下图: 基类上实现了众多功能,这里不详细描述。 四、TEdit 编辑框是从TControl—TStyledControl继承下来的,并实现了众多接口,如下图: 从实现的接口可以看到,包括键盘、光标、文字处理等都 阅读全文
摘要:
FireMonkey采用了与VCL不同的机制,很多基础类已经重新编写了,好在一如既往地提供了源代码,故此有机会学习一下。 一、图形引擎 FireMonkey采用了纯图形化技术解决可视化控件,而不是使用Windows控件作为基础。FireMonkey所使用的图形处理技术如下: Mac HD 使用 Qu 阅读全文