| OLD | NEW |
| 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 "xfa/fgas/font/fgas_fontutils.h" | 7 #include "xfa/fgas/font/fgas_fontutils.h" |
| 8 | 8 |
| 9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
| 10 #include "xfa/fgas/font/fgas_font.h" | 10 #include "xfa/fgas/font/fgas_font.h" |
| 11 | 11 |
| 12 FX_DWORD FGAS_GetFontHashCode(uint16_t wCodePage, FX_DWORD dwFontStyles) { | 12 uint32_t FGAS_GetFontHashCode(uint16_t wCodePage, uint32_t dwFontStyles) { |
| 13 FX_DWORD dwHash = wCodePage; | 13 uint32_t dwHash = wCodePage; |
| 14 if (dwFontStyles & FX_FONTSTYLE_FixedPitch) { | 14 if (dwFontStyles & FX_FONTSTYLE_FixedPitch) { |
| 15 dwHash |= 0x00010000; | 15 dwHash |= 0x00010000; |
| 16 } | 16 } |
| 17 if (dwFontStyles & FX_FONTSTYLE_Serif) { | 17 if (dwFontStyles & FX_FONTSTYLE_Serif) { |
| 18 dwHash |= 0x00020000; | 18 dwHash |= 0x00020000; |
| 19 } | 19 } |
| 20 if (dwFontStyles & FX_FONTSTYLE_Symbolic) { | 20 if (dwFontStyles & FX_FONTSTYLE_Symbolic) { |
| 21 dwHash |= 0x00040000; | 21 dwHash |= 0x00040000; |
| 22 } | 22 } |
| 23 if (dwFontStyles & FX_FONTSTYLE_Script) { | 23 if (dwFontStyles & FX_FONTSTYLE_Script) { |
| 24 dwHash |= 0x00080000; | 24 dwHash |= 0x00080000; |
| 25 } | 25 } |
| 26 if (dwFontStyles & FX_FONTSTYLE_Italic) { | 26 if (dwFontStyles & FX_FONTSTYLE_Italic) { |
| 27 dwHash |= 0x00100000; | 27 dwHash |= 0x00100000; |
| 28 } | 28 } |
| 29 if (dwFontStyles & FX_FONTSTYLE_Bold) { | 29 if (dwFontStyles & FX_FONTSTYLE_Bold) { |
| 30 dwHash |= 0x00200000; | 30 dwHash |= 0x00200000; |
| 31 } | 31 } |
| 32 return dwHash; | 32 return dwHash; |
| 33 } | 33 } |
| 34 FX_DWORD FGAS_GetFontFamilyHash(const FX_WCHAR* pszFontFamily, | 34 uint32_t FGAS_GetFontFamilyHash(const FX_WCHAR* pszFontFamily, |
| 35 FX_DWORD dwFontStyles, | 35 uint32_t dwFontStyles, |
| 36 uint16_t wCodePage) { | 36 uint16_t wCodePage) { |
| 37 CFX_WideString wsFont(pszFontFamily); | 37 CFX_WideString wsFont(pszFontFamily); |
| 38 if (dwFontStyles & FX_FONTSTYLE_Bold) { | 38 if (dwFontStyles & FX_FONTSTYLE_Bold) { |
| 39 wsFont += L"Bold"; | 39 wsFont += L"Bold"; |
| 40 } | 40 } |
| 41 if (dwFontStyles & FX_FONTSTYLE_Italic) { | 41 if (dwFontStyles & FX_FONTSTYLE_Italic) { |
| 42 wsFont += L"Italic"; | 42 wsFont += L"Italic"; |
| 43 } | 43 } |
| 44 wsFont += wCodePage; | 44 wsFont += wCodePage; |
| 45 return FX_HashCode_String_GetW((const FX_WCHAR*)wsFont, wsFont.GetLength()); | 45 return FX_HashCode_String_GetW((const FX_WCHAR*)wsFont, wsFont.GetLength()); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 if (wUnicode < usb.wStartUnicode) { | 144 if (wUnicode < usb.wStartUnicode) { |
| 145 iEnd = iMid - 1; | 145 iEnd = iMid - 1; |
| 146 } else if (wUnicode > usb.wEndUnicode) { | 146 } else if (wUnicode > usb.wEndUnicode) { |
| 147 iStart = iMid + 1; | 147 iStart = iMid + 1; |
| 148 } else { | 148 } else { |
| 149 return &usb; | 149 return &usb; |
| 150 } | 150 } |
| 151 } while (iStart <= iEnd); | 151 } while (iStart <= iEnd); |
| 152 return NULL; | 152 return NULL; |
| 153 } | 153 } |
| OLD | NEW |