summaryrefslogtreecommitdiff
path: root/vcl/unx
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2016-12-08 03:01:14 +0200
committerKhaled Hosny <khaledhosny@eglug.org>2016-12-10 01:57:50 +0000
commitbebee55d197176f009668628de0d9945c26af8ad (patch)
treee5e476f55f5e13e93540c475e2b34ff9a837384c /vcl/unx
parentb894104a0b02a9b074c76feb925389d7bee6a493 (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.cxx14
-rw-r--r--vcl/unx/generic/gdi/font.cxx8
-rw-r--r--vcl/unx/generic/glyphs/freetype_glyphcache.cxx20
-rw-r--r--vcl/unx/generic/glyphs/glyphcache.cxx8
-rw-r--r--vcl/unx/generic/print/genpspgraphics.cxx14
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;