| 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_gefont.h" | 7 #include "xfa/fgas/font/fgas_gefont.h" |
| 8 | 8 |
| 9 #include "xfa/fgas/crt/fgas_codepage.h" | 9 #include "xfa/fgas/crt/fgas_codepage.h" |
| 10 #include "xfa/fgas/font/fgas_fontutils.h" | 10 #include "xfa/fgas/font/fgas_fontutils.h" |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 if (bRet) { | 292 if (bRet) { |
| 293 m_bExtFont = !bTakeOver; | 293 m_bExtFont = !bTakeOver; |
| 294 bRet = InitFont(); | 294 bRet = InitFont(); |
| 295 } else { | 295 } else { |
| 296 m_bExtFont = TRUE; | 296 m_bExtFont = TRUE; |
| 297 } | 297 } |
| 298 m_wCharSet = 0xFFFF; | 298 m_wCharSet = 0xFFFF; |
| 299 return bRet; | 299 return bRet; |
| 300 } | 300 } |
| 301 FX_BOOL CFX_GEFont::InitFont() { | 301 FX_BOOL CFX_GEFont::InitFont() { |
| 302 if (!m_pFont) { | 302 if (!m_pFont) |
| 303 return FALSE; | 303 return FALSE; |
| 304 } | |
| 305 if (!m_pFontEncoding) { | 304 if (!m_pFontEncoding) { |
| 306 m_pFontEncoding = FX_CreateFontEncodingEx(m_pFont); | 305 m_pFontEncoding = FX_CreateFontEncodingEx(m_pFont); |
| 307 if (!m_pFontEncoding) { | 306 if (!m_pFontEncoding) |
| 308 return FALSE; | 307 return FALSE; |
| 309 } | |
| 310 } | 308 } |
| 311 if (!m_pCharWidthMap) { | 309 if (!m_pCharWidthMap) |
| 312 m_pCharWidthMap = new CFX_WordDiscreteArray(1024); | 310 m_pCharWidthMap = new CFX_WordDiscreteArray(1024); |
| 313 } | 311 if (!m_pRectArray) |
| 314 if (!m_pRectArray) { | 312 m_pRectArray = new CFX_MassArrayTemplate<CFX_Rect>(16); |
| 315 m_pRectArray = new CFX_RectMassArray(16); | 313 if (!m_pBBoxMap) |
| 316 } | |
| 317 if (!m_pBBoxMap) { | |
| 318 m_pBBoxMap = new CFX_MapPtrToPtr(16); | 314 m_pBBoxMap = new CFX_MapPtrToPtr(16); |
| 319 } | 315 |
| 320 return TRUE; | 316 return TRUE; |
| 321 } | 317 } |
| 322 IFX_Font* CFX_GEFont::Derive(uint32_t dwFontStyles, uint16_t wCodePage) { | 318 IFX_Font* CFX_GEFont::Derive(uint32_t dwFontStyles, uint16_t wCodePage) { |
| 323 if (GetFontStyles() == dwFontStyles) { | 319 if (GetFontStyles() == dwFontStyles) { |
| 324 return Retain(); | 320 return Retain(); |
| 325 } | 321 } |
| 326 return new CFX_GEFont(*this, dwFontStyles); | 322 return new CFX_GEFont(*this, dwFontStyles); |
| 327 } | 323 } |
| 328 uint8_t CFX_GEFont::GetCharSet() const { | 324 uint8_t CFX_GEFont::GetCharSet() const { |
| 329 if (m_wCharSet != 0xFFFF) { | 325 if (m_wCharSet != 0xFFFF) { |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 } | 550 } |
| 555 if (m_pRectArray != NULL) { | 551 if (m_pRectArray != NULL) { |
| 556 m_pRectArray->RemoveAll(); | 552 m_pRectArray->RemoveAll(); |
| 557 } | 553 } |
| 558 } | 554 } |
| 559 IFX_Font* CFX_GEFont::GetSubstFont(int32_t iGlyphIndex) const { | 555 IFX_Font* CFX_GEFont::GetSubstFont(int32_t iGlyphIndex) const { |
| 560 iGlyphIndex = ((uint32_t)iGlyphIndex) >> 24; | 556 iGlyphIndex = ((uint32_t)iGlyphIndex) >> 24; |
| 561 return iGlyphIndex == 0 ? const_cast<CFX_GEFont*>(this) | 557 return iGlyphIndex == 0 ? const_cast<CFX_GEFont*>(this) |
| 562 : m_SubstFonts[iGlyphIndex - 1]; | 558 : m_SubstFonts[iGlyphIndex - 1]; |
| 563 } | 559 } |
| OLD | NEW |