Kaydet (Commit) 2f182faa authored tarafından Jan-Marek Glogowski's avatar Jan-Marek Glogowski

OSX use font cache based glyph rect cache

Change-Id: Ia9bf718f1158c68971511688fe5af3e335d841ba
Reviewed-on: https://gerrit.libreoffice.org/61386
Tested-by: Jenkins
Reviewed-by: 's avatarJan-Marek Glogowski <glogow@fbihome.de>
üst 16a338e1
......@@ -85,7 +85,7 @@ public:
~CoreTextStyle() override;
void GetFontMetric( ImplFontMetricDataRef const & );
bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&) const;
bool GetGlyphBoundRect(const GlyphItem&, tools::Rectangle&);
bool GetGlyphOutline(const GlyphItem&, basegfx::B2DPolyPolygon&) const;
CFMutableDictionaryRef GetStyleDict( void ) const { return mpStyleDict; }
......
......@@ -137,8 +137,11 @@ void CoreTextStyle::GetFontMetric( ImplFontMetricDataRef const & rxFontMetric )
rxFontMetric->SetMinKashida(GetKashidaWidth());
}
bool CoreTextStyle::GetGlyphBoundRect(const GlyphItem& rGlyph, tools::Rectangle& rRect ) const
bool CoreTextStyle::GetGlyphBoundRect(const GlyphItem& rGlyph, tools::Rectangle& rRect )
{
if (GetCachedGlyphBoundRect(rGlyph.maGlyphId, rRect))
return true;
CGGlyph nCGGlyph = rGlyph.maGlyphId;
CTFontRef aCTFontRef = static_cast<CTFontRef>(CFDictionaryGetValue( mpStyleDict, kCTFontAttributeName ));
......@@ -156,6 +159,7 @@ bool CoreTextStyle::GetGlyphBoundRect(const GlyphItem& rGlyph, tools::Rectangle&
long xMax = ceil(aCGRect.origin.x + aCGRect.size.width);
long yMax = ceil(aCGRect.origin.y + aCGRect.size.height);
rRect = tools::Rectangle(xMin, -yMax, xMax, -yMin);
CacheGlyphBoundRect(rGlyph.maGlyphId, rRect);
return true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment