Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Side by Side Diff: core/fxge/ge/fx_ge_text.cpp

Issue 1832173003: Remove FX_DWORD from core/ and delete definition (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/fxge/ge/fx_ge_ps.cpp ('k') | core/fxge/ge/fx_text_int.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/fxge/ge/fx_text_int.h" 7 #include "core/fxge/ge/fx_text_int.h"
8 #include "core/include/fxcodec/fx_codec.h" 8 #include "core/include/fxcodec/fx_codec.h"
9 #include "core/include/fxge/fx_freetype.h" 9 #include "core/include/fxge/fx_freetype.h"
10 #include "core/include/fxge/fx_ge.h" 10 #include "core/include/fxge/fx_ge.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 186, 187, 188, 189, 190, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 131 186, 187, 188, 189, 190, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
132 200, 201, 202, 203, 204, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 132 200, 201, 202, 203, 204, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
133 214, 215, 216, 217, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 133 214, 215, 216, 217, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
134 228, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 239, 240, 134 228, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 239, 240,
135 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 250, 251, 252, 253, 254, 135 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 250, 251, 252, 253, 254,
136 255, 136 255,
137 }; 137 };
138 #define ADJUST_ALPHA(background, foreground, src_alpha, text_flags, a) \ 138 #define ADJUST_ALPHA(background, foreground, src_alpha, text_flags, a) \
139 src_alpha = g_TextGammaAdjust[(uint8_t)src_alpha]; 139 src_alpha = g_TextGammaAdjust[(uint8_t)src_alpha];
140 void _Color2Argb(FX_ARGB& argb, 140 void _Color2Argb(FX_ARGB& argb,
141 FX_DWORD color, 141 uint32_t color,
142 int alpha_flag, 142 int alpha_flag,
143 void* pIccTransform) { 143 void* pIccTransform) {
144 if (!pIccTransform && !FXGETFLAG_COLORTYPE(alpha_flag)) { 144 if (!pIccTransform && !FXGETFLAG_COLORTYPE(alpha_flag)) {
145 argb = color; 145 argb = color;
146 return; 146 return;
147 } 147 }
148 if (!CFX_GEModule::Get()->GetCodecModule() || 148 if (!CFX_GEModule::Get()->GetCodecModule() ||
149 !CFX_GEModule::Get()->GetCodecModule()->GetIccModule()) { 149 !CFX_GEModule::Get()->GetCodecModule()->GetIccModule()) {
150 pIccTransform = NULL; 150 pIccTransform = NULL;
151 } 151 }
(...skipping 18 matching lines...) Expand all
170 bgra[3] = (alpha_flag >> 24) ? FXGETFLAG_ALPHA_FILL(alpha_flag) 170 bgra[3] = (alpha_flag >> 24) ? FXGETFLAG_ALPHA_FILL(alpha_flag)
171 : FXGETFLAG_ALPHA_STROKE(alpha_flag); 171 : FXGETFLAG_ALPHA_STROKE(alpha_flag);
172 argb = FXARGB_MAKE(bgra[3], bgra[2], bgra[1], bgra[0]); 172 argb = FXARGB_MAKE(bgra[3], bgra[2], bgra[1], bgra[0]);
173 } 173 }
174 FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, 174 FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars,
175 const FXTEXT_CHARPOS* pCharPos, 175 const FXTEXT_CHARPOS* pCharPos,
176 CFX_Font* pFont, 176 CFX_Font* pFont,
177 CFX_FontCache* pCache, 177 CFX_FontCache* pCache,
178 FX_FLOAT font_size, 178 FX_FLOAT font_size,
179 const CFX_Matrix* pText2Device, 179 const CFX_Matrix* pText2Device,
180 FX_DWORD fill_color, 180 uint32_t fill_color,
181 FX_DWORD text_flags, 181 uint32_t text_flags,
182 int alpha_flag, 182 int alpha_flag,
183 void* pIccTransform) { 183 void* pIccTransform) {
184 int nativetext_flags = text_flags; 184 int nativetext_flags = text_flags;
185 if (m_DeviceClass != FXDC_DISPLAY) { 185 if (m_DeviceClass != FXDC_DISPLAY) {
186 if (!(text_flags & FXTEXT_PRINTGRAPHICTEXT)) { 186 if (!(text_flags & FXTEXT_PRINTGRAPHICTEXT)) {
187 bool should_call_draw_device_text = true; 187 bool should_call_draw_device_text = true;
188 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ 188 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
189 if ((text_flags & FXFONT_CIDFONT) || 189 if ((text_flags & FXFONT_CIDFONT) ||
190 (pFont->GetPsName().Find(CFX_WideString::FromLocal("+ZJHL")) != -1) || 190 (pFont->GetPsName().Find(CFX_WideString::FromLocal("+ZJHL")) != -1) ||
191 (pFont->GetPsName() == CFX_WideString::FromLocal("CNAAJI+cmex10"))) { 191 (pFont->GetPsName() == CFX_WideString::FromLocal("CNAAJI+cmex10"))) {
(...skipping 915 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 return TRUE; 1107 return TRUE;
1108 } 1108 }
1109 FX_BOOL CFX_RenderDevice::DrawTextPath(int nChars, 1109 FX_BOOL CFX_RenderDevice::DrawTextPath(int nChars,
1110 const FXTEXT_CHARPOS* pCharPos, 1110 const FXTEXT_CHARPOS* pCharPos,
1111 CFX_Font* pFont, 1111 CFX_Font* pFont,
1112 CFX_FontCache* pCache, 1112 CFX_FontCache* pCache,
1113 FX_FLOAT font_size, 1113 FX_FLOAT font_size,
1114 const CFX_Matrix* pText2User, 1114 const CFX_Matrix* pText2User,
1115 const CFX_Matrix* pUser2Device, 1115 const CFX_Matrix* pUser2Device,
1116 const CFX_GraphStateData* pGraphState, 1116 const CFX_GraphStateData* pGraphState,
1117 FX_DWORD fill_color, 1117 uint32_t fill_color,
1118 FX_ARGB stroke_color, 1118 FX_ARGB stroke_color,
1119 CFX_PathData* pClippingPath, 1119 CFX_PathData* pClippingPath,
1120 int nFlag, 1120 int nFlag,
1121 int alpha_flag, 1121 int alpha_flag,
1122 void* pIccTransform, 1122 void* pIccTransform,
1123 int blend_type) { 1123 int blend_type) {
1124 if (!pCache) { 1124 if (!pCache) {
1125 pCache = CFX_GEModule::Get()->GetFontCache(); 1125 pCache = CFX_GEModule::Get()->GetFontCache();
1126 } 1126 }
1127 CFX_FaceCache* pFaceCache = pCache->GetCachedFace(pFont); 1127 CFX_FaceCache* pFaceCache = pCache->GetCachedFace(pFont);
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 } 1249 }
1250 m_PathMap.clear(); 1250 m_PathMap.clear();
1251 } 1251 }
1252 #if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_ 1252 #if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_
1253 void CFX_FaceCache::InitPlatform() {} 1253 void CFX_FaceCache::InitPlatform() {}
1254 #endif 1254 #endif
1255 CFX_GlyphBitmap* CFX_FaceCache::LookUpGlyphBitmap( 1255 CFX_GlyphBitmap* CFX_FaceCache::LookUpGlyphBitmap(
1256 CFX_Font* pFont, 1256 CFX_Font* pFont,
1257 const CFX_Matrix* pMatrix, 1257 const CFX_Matrix* pMatrix,
1258 CFX_ByteStringC& FaceGlyphsKey, 1258 CFX_ByteStringC& FaceGlyphsKey,
1259 FX_DWORD glyph_index, 1259 uint32_t glyph_index,
1260 FX_BOOL bFontStyle, 1260 FX_BOOL bFontStyle,
1261 int dest_width, 1261 int dest_width,
1262 int anti_alias) { 1262 int anti_alias) {
1263 CFX_SizeGlyphCache* pSizeCache; 1263 CFX_SizeGlyphCache* pSizeCache;
1264 auto it = m_SizeMap.find(FaceGlyphsKey); 1264 auto it = m_SizeMap.find(FaceGlyphsKey);
1265 if (it == m_SizeMap.end()) { 1265 if (it == m_SizeMap.end()) {
1266 pSizeCache = new CFX_SizeGlyphCache; 1266 pSizeCache = new CFX_SizeGlyphCache;
1267 m_SizeMap[FaceGlyphsKey] = pSizeCache; 1267 m_SizeMap[FaceGlyphsKey] = pSizeCache;
1268 } else { 1268 } else {
1269 pSizeCache = it->second; 1269 pSizeCache = it->second;
1270 } 1270 }
1271 auto it2 = pSizeCache->m_GlyphMap.find(glyph_index); 1271 auto it2 = pSizeCache->m_GlyphMap.find(glyph_index);
1272 if (it2 != pSizeCache->m_GlyphMap.end()) 1272 if (it2 != pSizeCache->m_GlyphMap.end())
1273 return it2->second; 1273 return it2->second;
1274 1274
1275 CFX_GlyphBitmap* pGlyphBitmap = RenderGlyph(pFont, glyph_index, bFontStyle, 1275 CFX_GlyphBitmap* pGlyphBitmap = RenderGlyph(pFont, glyph_index, bFontStyle,
1276 pMatrix, dest_width, anti_alias); 1276 pMatrix, dest_width, anti_alias);
1277 if (!pGlyphBitmap) 1277 if (!pGlyphBitmap)
1278 return nullptr; 1278 return nullptr;
1279 1279
1280 pSizeCache->m_GlyphMap[glyph_index] = pGlyphBitmap; 1280 pSizeCache->m_GlyphMap[glyph_index] = pGlyphBitmap;
1281 return pGlyphBitmap; 1281 return pGlyphBitmap;
1282 } 1282 }
1283 const CFX_GlyphBitmap* CFX_FaceCache::LoadGlyphBitmap(CFX_Font* pFont, 1283 const CFX_GlyphBitmap* CFX_FaceCache::LoadGlyphBitmap(CFX_Font* pFont,
1284 FX_DWORD glyph_index, 1284 uint32_t glyph_index,
1285 FX_BOOL bFontStyle, 1285 FX_BOOL bFontStyle,
1286 const CFX_Matrix* pMatrix, 1286 const CFX_Matrix* pMatrix,
1287 int dest_width, 1287 int dest_width,
1288 int anti_alias, 1288 int anti_alias,
1289 int& text_flags) { 1289 int& text_flags) {
1290 if (glyph_index == (FX_DWORD)-1) { 1290 if (glyph_index == (uint32_t)-1) {
1291 return NULL; 1291 return NULL;
1292 } 1292 }
1293 _CFX_UniqueKeyGen keygen; 1293 _CFX_UniqueKeyGen keygen;
1294 #if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_ 1294 #if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_
1295 if (pFont->GetSubstFont()) 1295 if (pFont->GetSubstFont())
1296 keygen.Generate(9, (int)(pMatrix->a * 10000), (int)(pMatrix->b * 10000), 1296 keygen.Generate(9, (int)(pMatrix->a * 10000), (int)(pMatrix->b * 10000),
1297 (int)(pMatrix->c * 10000), (int)(pMatrix->d * 10000), 1297 (int)(pMatrix->c * 10000), (int)(pMatrix->d * 10000),
1298 dest_width, anti_alias, pFont->GetSubstFont()->m_Weight, 1298 dest_width, anti_alias, pFont->GetSubstFont()->m_Weight,
1299 pFont->GetSubstFont()->m_ItalicAngle, pFont->IsVertical()); 1299 pFont->GetSubstFont()->m_ItalicAngle, pFont->IsVertical());
1300 else 1300 else
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1505 if (temp > 255) { 1505 if (temp > 255) {
1506 temp = 255; 1506 temp = 255;
1507 } else if (temp < 0) { 1507 } else if (temp < 0) {
1508 temp = 0; 1508 temp = 0;
1509 } 1509 }
1510 *pDstRow++ = (uint8_t)temp; 1510 *pDstRow++ = (uint8_t)temp;
1511 } 1511 }
1512 } 1512 }
1513 } 1513 }
1514 CFX_GlyphBitmap* CFX_FaceCache::RenderGlyph(CFX_Font* pFont, 1514 CFX_GlyphBitmap* CFX_FaceCache::RenderGlyph(CFX_Font* pFont,
1515 FX_DWORD glyph_index, 1515 uint32_t glyph_index,
1516 FX_BOOL bFontStyle, 1516 FX_BOOL bFontStyle,
1517 const CFX_Matrix* pMatrix, 1517 const CFX_Matrix* pMatrix,
1518 int dest_width, 1518 int dest_width,
1519 int anti_alias) { 1519 int anti_alias) {
1520 if (!m_Face) { 1520 if (!m_Face) {
1521 return NULL; 1521 return NULL;
1522 } 1522 }
1523 FXFT_Matrix ft_matrix; 1523 FXFT_Matrix ft_matrix;
1524 ft_matrix.xx = (signed long)(pMatrix->GetA() / 64 * 65536); 1524 ft_matrix.xx = (signed long)(pMatrix->GetA() / 64 * 65536);
1525 ft_matrix.xy = (signed long)(pMatrix->GetC() / 64 * 65536); 1525 ft_matrix.xy = (signed long)(pMatrix->GetC() / 64 * 65536);
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1640 } else { 1640 } else {
1641 _ContrastAdjust(pSrcBuf, pDestBuf, bmwidth, bmheight, src_pitch, 1641 _ContrastAdjust(pSrcBuf, pDestBuf, bmwidth, bmheight, src_pitch,
1642 dest_pitch); 1642 dest_pitch);
1643 _GammaAdjust(pDestBuf, bmwidth, bmheight, dest_pitch, 1643 _GammaAdjust(pDestBuf, bmwidth, bmheight, dest_pitch,
1644 CFX_GEModule::Get()->GetTextGammaTable()); 1644 CFX_GEModule::Get()->GetTextGammaTable());
1645 } 1645 }
1646 } 1646 }
1647 return pGlyphBitmap; 1647 return pGlyphBitmap;
1648 } 1648 }
1649 const CFX_PathData* CFX_FaceCache::LoadGlyphPath(CFX_Font* pFont, 1649 const CFX_PathData* CFX_FaceCache::LoadGlyphPath(CFX_Font* pFont,
1650 FX_DWORD glyph_index, 1650 uint32_t glyph_index,
1651 int dest_width) { 1651 int dest_width) {
1652 if (!m_Face || glyph_index == (FX_DWORD)-1) 1652 if (!m_Face || glyph_index == (uint32_t)-1)
1653 return nullptr; 1653 return nullptr;
1654 1654
1655 FX_DWORD key = glyph_index; 1655 uint32_t key = glyph_index;
1656 if (pFont->GetSubstFont()) { 1656 if (pFont->GetSubstFont()) {
1657 key += (((pFont->GetSubstFont()->m_Weight / 16) << 15) + 1657 key += (((pFont->GetSubstFont()->m_Weight / 16) << 15) +
1658 ((pFont->GetSubstFont()->m_ItalicAngle / 2) << 21) + 1658 ((pFont->GetSubstFont()->m_ItalicAngle / 2) << 21) +
1659 ((dest_width / 16) << 25) + (pFont->IsVertical() << 31)); 1659 ((dest_width / 16) << 25) + (pFont->IsVertical() << 31));
1660 } 1660 }
1661 auto it = m_PathMap.find(key); 1661 auto it = m_PathMap.find(key);
1662 if (it != m_PathMap.end()) 1662 if (it != m_PathMap.end())
1663 return it->second; 1663 return it->second;
1664 1664
1665 CFX_PathData* pGlyphPath = pFont->LoadGlyphPath(glyph_index, dest_width); 1665 CFX_PathData* pGlyphPath = pFont->LoadGlyphPath(glyph_index, dest_width);
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
1785 param->m_pPoints[param->m_PointCount + 2].m_PointY = 1785 param->m_pPoints[param->m_PointCount + 2].m_PointY =
1786 to->y / param->m_CoordUnit; 1786 to->y / param->m_CoordUnit;
1787 param->m_pPoints[param->m_PointCount + 2].m_Flag = FXPT_BEZIERTO; 1787 param->m_pPoints[param->m_PointCount + 2].m_Flag = FXPT_BEZIERTO;
1788 param->m_CurX = to->x; 1788 param->m_CurX = to->x;
1789 param->m_CurY = to->y; 1789 param->m_CurY = to->y;
1790 } 1790 }
1791 param->m_PointCount += 3; 1791 param->m_PointCount += 3;
1792 return 0; 1792 return 0;
1793 } 1793 }
1794 }; 1794 };
1795 CFX_PathData* CFX_Font::LoadGlyphPath(FX_DWORD glyph_index, int dest_width) { 1795 CFX_PathData* CFX_Font::LoadGlyphPath(uint32_t glyph_index, int dest_width) {
1796 if (!m_Face) { 1796 if (!m_Face) {
1797 return NULL; 1797 return NULL;
1798 } 1798 }
1799 FXFT_Set_Pixel_Sizes(m_Face, 0, 64); 1799 FXFT_Set_Pixel_Sizes(m_Face, 0, 64);
1800 FXFT_Matrix ft_matrix = {65536, 0, 0, 65536}; 1800 FXFT_Matrix ft_matrix = {65536, 0, 0, 65536};
1801 if (m_pSubstFont) { 1801 if (m_pSubstFont) {
1802 if (m_pSubstFont->m_ItalicAngle) { 1802 if (m_pSubstFont->m_ItalicAngle) {
1803 int skew = m_pSubstFont->m_ItalicAngle; 1803 int skew = m_pSubstFont->m_ItalicAngle;
1804 skew = skew <= -ANGLESKEW_ARRAY_SIZE ? -58 : -g_AngleSkew[-skew]; 1804 skew = skew <= -ANGLESKEW_ARRAY_SIZE ? -58 : -g_AngleSkew[-skew];
1805 if (m_bVertical) { 1805 if (m_bVertical) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1861 if (params.m_PointCount) { 1861 if (params.m_PointCount) {
1862 pPath->GetPoints()[params.m_PointCount - 1].m_Flag |= FXPT_CLOSEFIGURE; 1862 pPath->GetPoints()[params.m_PointCount - 1].m_Flag |= FXPT_CLOSEFIGURE;
1863 } 1863 }
1864 return pPath; 1864 return pPath;
1865 } 1865 }
1866 void _CFX_UniqueKeyGen::Generate(int count, ...) { 1866 void _CFX_UniqueKeyGen::Generate(int count, ...) {
1867 va_list argList; 1867 va_list argList;
1868 va_start(argList, count); 1868 va_start(argList, count);
1869 for (int i = 0; i < count; i++) { 1869 for (int i = 0; i < count; i++) {
1870 int p = va_arg(argList, int); 1870 int p = va_arg(argList, int);
1871 ((FX_DWORD*)m_Key)[i] = p; 1871 ((uint32_t*)m_Key)[i] = p;
1872 } 1872 }
1873 va_end(argList); 1873 va_end(argList);
1874 m_KeyLen = count * sizeof(FX_DWORD); 1874 m_KeyLen = count * sizeof(uint32_t);
1875 } 1875 }
OLDNEW
« no previous file with comments | « core/fxge/ge/fx_ge_ps.cpp ('k') | core/fxge/ge/fx_text_int.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698