diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2016-12-08 03:01:14 +0200 |
---|---|---|
committer | Khaled Hosny <khaledhosny@eglug.org> | 2016-12-10 01:57:50 +0000 |
commit | bebee55d197176f009668628de0d9945c26af8ad (patch) | |
tree | e5e476f55f5e13e93540c475e2b34ff9a837384c /vcl/unx | |
parent | b894104a0b02a9b074c76feb925389d7bee6a493 (diff) |
Use GlyphItem in more places
Change-Id: Ic0dd8c0311161271817eb9a3f454d00a319e43a8
Reviewed-on: https://gerrit.libreoffice.org/31814
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
Diffstat (limited to 'vcl/unx')
-rw-r--r-- | vcl/unx/generic/gdi/cairotextrender.cxx | 14 | ||||
-rw-r--r-- | vcl/unx/generic/gdi/font.cxx | 8 | ||||
-rw-r--r-- | vcl/unx/generic/glyphs/freetype_glyphcache.cxx | 20 | ||||
-rw-r--r-- | vcl/unx/generic/glyphs/glyphcache.cxx | 8 | ||||
-rw-r--r-- | vcl/unx/generic/print/genpspgraphics.cxx | 14 |
5 files changed, 26 insertions, 38 deletions
diff --git a/vcl/unx/generic/gdi/cairotextrender.cxx b/vcl/unx/generic/gdi/cairotextrender.cxx index 501d3998a9da..3d7ca1547eb5 100644 --- a/vcl/unx/generic/gdi/cairotextrender.cxx +++ b/vcl/unx/generic/gdi/cairotextrender.cxx @@ -430,9 +430,9 @@ void CairoTextRender::GetFontMetric( ImplFontMetricDataRef& rxFontMetric, int nF mpFreetypeFont[nFallbackLevel]->GetFontMetric(rxFontMetric); } -bool CairoTextRender::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect ) +bool CairoTextRender::GetGlyphBoundRect(const GlyphItem& rGlyph, Rectangle& rRect) { - const int nLevel = aGlyphId >> GF_FONTSHIFT; + const int nLevel = rGlyph.maGlyphId >> GF_FONTSHIFT; if( nLevel >= MAX_FALLBACK ) return false; @@ -440,8 +440,7 @@ bool CairoTextRender::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect if( !pSF ) return false; - aGlyphId &= GF_IDXMASK; - const GlyphMetric& rGM = pSF->GetGlyphMetric(aGlyphId); + const GlyphMetric& rGM = pSF->GetGlyphMetric(rGlyph); Rectangle aRect( rGM.GetOffset(), rGM.GetSize() ); if ( pSF->mnCos != 0x10000 && pSF->mnSin != 0 ) @@ -460,10 +459,10 @@ bool CairoTextRender::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect return true; } -bool CairoTextRender::GetGlyphOutline( sal_GlyphId aGlyphId, +bool CairoTextRender::GetGlyphOutline(const GlyphItem& rGlyph, basegfx::B2DPolyPolygon& rPolyPoly ) { - const int nLevel = aGlyphId >> GF_FONTSHIFT; + const int nLevel = rGlyph.maGlyphId >> GF_FONTSHIFT; if( nLevel >= MAX_FALLBACK ) return false; @@ -471,8 +470,7 @@ bool CairoTextRender::GetGlyphOutline( sal_GlyphId aGlyphId, if( !pSF ) return false; - aGlyphId &= GF_IDXMASK; - if( pSF->GetGlyphOutline( aGlyphId, rPolyPoly ) ) + if( pSF->GetGlyphOutline(rGlyph, rPolyPoly)) return true; return false; diff --git a/vcl/unx/generic/gdi/font.cxx b/vcl/unx/generic/gdi/font.cxx index 8379c0cca3ee..37a3846d7d23 100644 --- a/vcl/unx/generic/gdi/font.cxx +++ b/vcl/unx/generic/gdi/font.cxx @@ -106,15 +106,15 @@ X11SalGraphics::GetFontMetric( ImplFontMetricDataRef &rxFontMetric, int nFallbac mxTextRenderImpl->GetFontMetric(rxFontMetric, nFallbackLevel); } -bool X11SalGraphics::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect ) +bool X11SalGraphics::GetGlyphBoundRect(const GlyphItem& rGlyph, Rectangle& rRect) { - return mxTextRenderImpl->GetGlyphBoundRect(aGlyphId, rRect); + return mxTextRenderImpl->GetGlyphBoundRect(rGlyph, rRect); } -bool X11SalGraphics::GetGlyphOutline( sal_GlyphId aGlyphId, +bool X11SalGraphics::GetGlyphOutline(const GlyphItem& rGlyph, basegfx::B2DPolyPolygon& rPolyPoly ) { - return mxTextRenderImpl->GetGlyphOutline(aGlyphId, rPolyPoly); + return mxTextRenderImpl->GetGlyphOutline(rGlyph, rPolyPoly); } SalLayout* X11SalGraphics::GetTextLayout( ImplLayoutArgs& rArgs, int nFallbackLevel ) diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx index 36b262fd3e29..2e62abe6cbce 100644 --- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx +++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx @@ -627,12 +627,6 @@ void FreetypeFont::GetFontMetric(ImplFontMetricDataRef& rxTo) const } -static inline void SplitGlyphFlags(sal_GlyphId& rGlyphId, int& nGlyphFlags) -{ - nGlyphFlags = rGlyphId & GF_FLAGMASK; - rGlyphId &= GF_IDXMASK; -} - void FreetypeFont::ApplyGlyphTransform( int nGlyphFlags, FT_Glyph pGlyphFT ) const { // shortcut most common case @@ -696,14 +690,13 @@ void FreetypeFont::ApplyGlyphTransform( int nGlyphFlags, FT_Glyph pGlyphFT ) con } } -void FreetypeFont::InitGlyphData( sal_GlyphId aGlyphId, GlyphData& rGD ) const +void FreetypeFont::InitGlyphData(const GlyphItem& rGlyph, GlyphData& rGD ) const { FT_Activate_Size( maSizeFT ); - int nGlyphFlags; - SplitGlyphFlags(aGlyphId, nGlyphFlags ); + int nGlyphFlags = rGlyph.maGlyphId & GF_FLAGMASK;; - FT_Error rc = FT_Load_Glyph(maFaceFT, aGlyphId, mnLoadFlags); + FT_Error rc = FT_Load_Glyph(maFaceFT, rGlyph.maGlyphId & GF_IDXMASK, mnLoadFlags); if( rc != FT_Err_Ok ) { @@ -1001,7 +994,7 @@ static int FT_cubic_to( const FT_Vector* p1, const FT_Vector* p2, const FT_Vecto } // extern "C" -bool FreetypeFont::GetGlyphOutline( sal_GlyphId aGlyphId, +bool FreetypeFont::GetGlyphOutline(const GlyphItem& rGlyph, basegfx::B2DPolyPolygon& rB2DPolyPoly ) const { if( maSizeFT ) @@ -1009,8 +1002,7 @@ bool FreetypeFont::GetGlyphOutline( sal_GlyphId aGlyphId, rB2DPolyPoly.clear(); - int nGlyphFlags; - SplitGlyphFlags(aGlyphId, nGlyphFlags); + int nGlyphFlags = rGlyph.maGlyphId & GF_FLAGMASK;; FT_Int nLoadFlags = FT_LOAD_DEFAULT | FT_LOAD_IGNORE_TRANSFORM; @@ -1019,7 +1011,7 @@ bool FreetypeFont::GetGlyphOutline( sal_GlyphId aGlyphId, nLoadFlags |= FT_LOAD_TARGET_LIGHT; #endif - FT_Error rc = FT_Load_Glyph( maFaceFT, aGlyphId, nLoadFlags ); + FT_Error rc = FT_Load_Glyph(maFaceFT, rGlyph.maGlyphId & GF_IDXMASK, nLoadFlags); if( rc != FT_Err_Ok ) return false; diff --git a/vcl/unx/generic/glyphs/glyphcache.cxx b/vcl/unx/generic/glyphs/glyphcache.cxx index 3cece786e7a7..b41f7c08c376 100644 --- a/vcl/unx/generic/glyphs/glyphcache.cxx +++ b/vcl/unx/generic/glyphs/glyphcache.cxx @@ -304,10 +304,10 @@ long FreetypeFont::Release() const return --mnRefCount; } -const GlyphMetric& FreetypeFont::GetGlyphMetric(sal_GlyphId aGlyphId) +const GlyphMetric& FreetypeFont::GetGlyphMetric(const GlyphItem& rGlyph) { // usually the GlyphData is cached - GlyphList::iterator it = maGlyphList.find( aGlyphId ); + GlyphList::iterator it = maGlyphList.find(rGlyph.maGlyphId & GF_IDXMASK); if( it != maGlyphList.end() ) { GlyphData& rGlyphData = it->second; GlyphCache::GetInstance().UsingGlyph( *this, rGlyphData ); @@ -315,9 +315,9 @@ const GlyphMetric& FreetypeFont::GetGlyphMetric(sal_GlyphId aGlyphId) } // sometimes not => we need to create and initialize it ourselves - GlyphData& rGlyphData = maGlyphList[ aGlyphId ]; + GlyphData& rGlyphData = maGlyphList[rGlyph.maGlyphId & GF_IDXMASK]; mnBytesUsed += sizeof( GlyphData ); - InitGlyphData( aGlyphId, rGlyphData ); + InitGlyphData(rGlyph, rGlyphData); GlyphCache::GetInstance().AddedGlyph( *this, rGlyphData ); return rGlyphData.GetMetric(); } diff --git a/vcl/unx/generic/print/genpspgraphics.cxx b/vcl/unx/generic/print/genpspgraphics.cxx index 213874d84e3e..f0859eb11f1d 100644 --- a/vcl/unx/generic/print/genpspgraphics.cxx +++ b/vcl/unx/generic/print/genpspgraphics.cxx @@ -760,9 +760,9 @@ void GenPspGraphics::GetFontMetric(ImplFontMetricDataRef& rxFontMetric, int nFal m_pFreetypeFont[nFallbackLevel]->GetFontMetric(rxFontMetric); } -bool GenPspGraphics::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect ) +bool GenPspGraphics::GetGlyphBoundRect(const GlyphItem& rGlyph, Rectangle& rRect) { - const int nLevel = aGlyphId >> GF_FONTSHIFT; + const int nLevel = rGlyph.maGlyphId >> GF_FONTSHIFT; if( nLevel >= MAX_FALLBACK ) return false; @@ -770,16 +770,15 @@ bool GenPspGraphics::GetGlyphBoundRect( sal_GlyphId aGlyphId, Rectangle& rRect ) if( !pSF ) return false; - aGlyphId &= GF_IDXMASK; - const GlyphMetric& rGM = pSF->GetGlyphMetric( aGlyphId ); + const GlyphMetric& rGM = pSF->GetGlyphMetric(rGlyph); rRect = Rectangle( rGM.GetOffset(), rGM.GetSize() ); return true; } -bool GenPspGraphics::GetGlyphOutline( sal_GlyphId aGlyphId, +bool GenPspGraphics::GetGlyphOutline(const GlyphItem& rGlyph, basegfx::B2DPolyPolygon& rB2DPolyPoly ) { - const int nLevel = aGlyphId >> GF_FONTSHIFT; + const int nLevel = rGlyph.maGlyphId >> GF_FONTSHIFT; if( nLevel >= MAX_FALLBACK ) return false; @@ -787,8 +786,7 @@ bool GenPspGraphics::GetGlyphOutline( sal_GlyphId aGlyphId, if( !pSF ) return false; - aGlyphId &= GF_IDXMASK; - if( pSF->GetGlyphOutline( aGlyphId, rB2DPolyPoly ) ) + if (pSF->GetGlyphOutline(rGlyph, rB2DPolyPoly)) return true; return false; |