diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2016-12-08 05:57:40 +0200 |
---|---|---|
committer | Khaled Hosny <khaledhosny@eglug.org> | 2016-12-11 00:22:05 +0000 |
commit | a597dc833966aba23d4b677e5bcd6f74b979fc9d (patch) | |
tree | 1d726a37763038278a9117628388dc55c1c969d1 /vcl/win/gdi | |
parent | 0fb0a564bf9cb0f721e812ac4bfa70e951827bdd (diff) |
sal_GlyphId is a simple glyph id now
No more cleverness.
Change-Id: I760c602802961b37728c6987c4ade14fb02ca034
Reviewed-on: https://gerrit.libreoffice.org/31819
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
Diffstat (limited to 'vcl/win/gdi')
-rw-r--r-- | vcl/win/gdi/salfont.cxx | 23 | ||||
-rw-r--r-- | vcl/win/gdi/winlayout.cxx | 6 |
2 files changed, 9 insertions, 20 deletions
diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx index 5d2255a8c5f6..65c909ffb1c7 100644 --- a/vcl/win/gdi/salfont.cxx +++ b/vcl/win/gdi/salfont.cxx @@ -1368,7 +1368,7 @@ bool WinSalGraphics::GetGlyphBoundRect(const GlyphItem& rGlyph, Rectangle& rRect GLYPHMETRICS aGM; aGM.gmptGlyphOrigin.x = aGM.gmptGlyphOrigin.y = 0; aGM.gmBlackBoxX = aGM.gmBlackBoxY = 0; - DWORD nSize = ::GetGlyphOutlineW(hDC, rGlyph.maGlyphId & GF_IDXMASK, nGGOFlags, &aGM, 0, nullptr, &aMat); + DWORD nSize = ::GetGlyphOutlineW(hDC, rGlyph.maGlyphId, nGGOFlags, &aGM, 0, nullptr, &aMat); if( nSize == GDI_ERROR ) return false; @@ -1397,14 +1397,14 @@ bool WinSalGraphics::GetGlyphOutline(const GlyphItem& rGlyph, nGGOFlags |= GGO_GLYPH_INDEX; GLYPHMETRICS aGlyphMetrics; - const DWORD nSize1 = ::GetGlyphOutlineW(hDC, rGlyph.maGlyphId & GF_IDXMASK, nGGOFlags, &aGlyphMetrics, 0, nullptr, &aMat); + const DWORD nSize1 = ::GetGlyphOutlineW(hDC, rGlyph.maGlyphId, nGGOFlags, &aGlyphMetrics, 0, nullptr, &aMat); if( !nSize1 ) // blank glyphs are ok return true; else if( nSize1 == GDI_ERROR ) return false; BYTE* pData = new BYTE[ nSize1 ]; - const DWORD nSize2 = ::GetGlyphOutlineW(hDC, rGlyph.maGlyphId & GF_IDXMASK, nGGOFlags, + const DWORD nSize2 = ::GetGlyphOutlineW(hDC, rGlyph.maGlyphId, nGGOFlags, &aGlyphMetrics, nSize1, pData, &aMat ); if( nSize1 != nSize2 ) @@ -1661,23 +1661,13 @@ bool WinSalGraphics::CreateFontSubset( const OUString& rToFile, { pWinFontData->UpdateFromHDC( getHDC() ); FontCharMapRef xFontCharMap = pWinFontData->GetFontCharMap(); - - sal_GlyphId aRealGlyphIds[ 256 ]; - for( int i = 0; i < nGlyphCount; ++i ) - { - // TODO: remap notdef glyph if needed - // TODO: use GDI's GetGlyphIndices instead? Does it handle GSUB properly? - sal_GlyphId aGlyphId = pGlyphIds[i] & GF_IDXMASK; - aRealGlyphIds[i] = aGlyphId; - } - xFontCharMap = nullptr; // provide a font subset from the CFF-table FILE* pOutFile = fopen( aToFile.getStr(), "wb" ); rInfo.LoadFont( FontSubsetInfo::CFF_FONT, aRawCffData.get(), aRawCffData.size() ); bool bRC = rInfo.CreateFontSubset( FontSubsetInfo::TYPE1_PFB, pOutFile, nullptr, - aRealGlyphIds, pEncoding, nGlyphCount, pGlyphWidths ); + pGlyphIds, pEncoding, nGlyphCount, pGlyphWidths ); fclose( pOutFile ); return bRC; } @@ -1717,9 +1707,8 @@ bool WinSalGraphics::CreateFontSubset( const OUString& rToFile, for( i = 0; i < nGlyphCount; ++i ) { aTempEncs[i] = pEncoding[i]; - sal_GlyphId aGlyphId = pGlyphIds[i] & GF_IDXMASK; - aShortIDs[i] = static_cast<sal_uInt16>( aGlyphId ); - if( !aGlyphId ) + aShortIDs[i] = static_cast<sal_uInt16>(pGlyphIds[i]); + if (!aShortIDs[i]) if( nNotDef < 0 ) nNotDef = i; // first NotDef glyph found } diff --git a/vcl/win/gdi/winlayout.cxx b/vcl/win/gdi/winlayout.cxx index 8b218630d531..708c931b0e05 100644 --- a/vcl/win/gdi/winlayout.cxx +++ b/vcl/win/gdi/winlayout.cxx @@ -294,7 +294,7 @@ bool ExTextOutRenderer::operator ()(SalLayout const &rLayout, HDC hDC, while (rLayout.GetNextGlyphs(1, &pGlyph, *pPos, *pGetNextGlypInfo)) { bGlyphs = true; - WORD glyphWStr[] = { pGlyph->maGlyphId & GF_IDXMASK }; + WORD glyphWStr[] = { pGlyph->maGlyphId }; if (pGlyph->IsVertical()) glyphWStr[0] |= GF_VERT; ExtTextOutW(hDC, pPos->X(), pPos->Y(), ETO_GLYPH_INDEX, nullptr, LPCWSTR(&glyphWStr), 1, nullptr); @@ -386,7 +386,7 @@ bool D2DWriteTextOutRenderer::operator ()(SalLayout const &rLayout, HDC hDC, while (rLayout.GetNextGlyphs(1, &pGlyph, *pPos, *pGetNextGlypInfo)) { bGlyphs = true; - UINT16 glyphIndices[] = { pGlyph->maGlyphId & GF_IDXMASK }; + UINT16 glyphIndices[] = { pGlyph->maGlyphId }; FLOAT glyphAdvances[] = { pGlyph->mnNewWidth }; DWRITE_GLYPH_OFFSET glyphOffsets[] = { { 0.0f, 0.0f }, }; D2D1_POINT_2F baseline = { pPos->X() - bounds.Left(), pPos->Y() - bounds.Top() }; @@ -545,7 +545,7 @@ bool D2DWriteTextOutRenderer::GetDWriteInkBox(SalLayout const &rLayout, Rectangl while (rLayout.GetNextGlyphs(1, &pGlyph, aPos, nStart)) { positions.push_back(aPos); - indices.push_back(pGlyph->maGlyphId & GF_IDXMASK); + indices.push_back(pGlyph->maGlyphId); vertical.push_back(pGlyph->IsVertical()); } |