From a31d4a90f3446df76d8d3ffa0b441db0ad4623af Mon Sep 17 00:00:00 2001 From: thestig Date: Wed, 1 Jun 2016 20:18:41 -0700 Subject: Change CFX_Font::GetPsName() to return a CFX_ByteString. So everyone can avoid doing Byte to WideString conversions. Also remove CFX_GEFont::GetPsName() and deduplicate a couple of GetPsName() calls. Review-Url: https://codereview.chromium.org/2019173002 --- core/fxge/android/fpf_skiafont.cpp | 6 +++--- core/fxge/android/fpf_skiafont.h | 2 +- core/fxge/apple/fx_apple_platform.cpp | 4 ++-- core/fxge/apple/fx_quartz_device.cpp | 4 ++-- core/fxge/ge/fx_ge_font.cpp | 17 ++++++++--------- core/fxge/ge/fx_ge_text.cpp | 35 +++++++++++++++++------------------ core/fxge/include/fx_font.h | 2 +- 7 files changed, 34 insertions(+), 36 deletions(-) (limited to 'core/fxge') diff --git a/core/fxge/android/fpf_skiafont.cpp b/core/fxge/android/fpf_skiafont.cpp index 332bfd0ca2..e3277137d0 100644 --- a/core/fxge/android/fpf_skiafont.cpp +++ b/core/fxge/android/fpf_skiafont.cpp @@ -49,10 +49,10 @@ CFX_ByteString CFPF_SkiaFont::GetFamilyName() { return CFX_ByteString(FXFT_Get_Face_Family_Name(m_Face)); } -CFX_WideString CFPF_SkiaFont::GetPsName() { +CFX_ByteString CFPF_SkiaFont::GetPsName() { if (!m_Face) - return CFX_WideString(); - return CFX_WideString::FromLocal(FXFT_Get_Postscript_Name(m_Face)); + return CFX_ByteString(); + return FXFT_Get_Postscript_Name(m_Face); } int32_t CFPF_SkiaFont::GetGlyphIndex(FX_WCHAR wUnicode) { diff --git a/core/fxge/android/fpf_skiafont.h b/core/fxge/android/fpf_skiafont.h index 59172a5385..15347b2ff3 100644 --- a/core/fxge/android/fpf_skiafont.h +++ b/core/fxge/android/fpf_skiafont.h @@ -28,7 +28,7 @@ class CFPF_SkiaFont { FPF_HFONT GetHandle(); CFX_ByteString GetFamilyName(); - CFX_WideString GetPsName(); + CFX_ByteString GetPsName(); uint32_t GetFontStyle() const { return m_dwStyle; } uint8_t GetCharset() const { return m_uCharset; } int32_t GetGlyphIndex(FX_WCHAR wUnicode); diff --git a/core/fxge/apple/fx_apple_platform.cpp b/core/fxge/apple/fx_apple_platform.cpp index a641ad5f85..7bedc678ac 100644 --- a/core/fxge/apple/fx_apple_platform.cpp +++ b/core/fxge/apple/fx_apple_platform.cpp @@ -71,9 +71,9 @@ static FX_BOOL _CGDrawGlyphRun(CGContextRef pContext, static_cast(CFX_GEModule::Get()->GetPlatformData()) ->m_quartz2d; if (!pFont->GetPlatformFont()) { - if (pFont->GetPsName() == CFX_WideString::FromLocal("DFHeiStd-W5")) { + if (pFont->GetPsName() == "DFHeiStd-W5") return FALSE; - } + pFont->SetPlatformFont( quartz2d.CreateFont(pFont->GetFontData(), pFont->GetSize())); if (!pFont->GetPlatformFont()) { diff --git a/core/fxge/apple/fx_quartz_device.cpp b/core/fxge/apple/fx_quartz_device.cpp index 5bdffa9409..6fc22ffdf4 100644 --- a/core/fxge/apple/fx_quartz_device.cpp +++ b/core/fxge/apple/fx_quartz_device.cpp @@ -758,9 +758,9 @@ FX_BOOL CFX_QuartzDeviceDriver::CG_DrawGlypRun(int nChars, static_cast(CFX_GEModule::Get()->GetPlatformData()) ->m_quartz2d; if (!pFont->GetPlatformFont()) { - if (pFont->GetPsName() == CFX_WideString::FromLocal("DFHeiStd-W5")) { + if (pFont->GetPsName() == "DFHeiStd-W5") return FALSE; - } + pFont->SetPlatformFont( quartz2d.CreateFont(pFont->GetFontData(), pFont->GetSize())); if (!pFont->GetPlatformFont()) { diff --git a/core/fxge/ge/fx_ge_font.cpp b/core/fxge/ge/fx_ge_font.cpp index 144228ff28..ba53be7ab5 100644 --- a/core/fxge/ge/fx_ge_font.cpp +++ b/core/fxge/ge/fx_ge_font.cpp @@ -356,17 +356,16 @@ FX_BOOL CFX_Font::IsFixedWidth() const { return FXFT_Is_Face_fixedwidth(m_Face); } -CFX_WideString CFX_Font::GetPsName() const { - if (!m_Face) { - return CFX_WideString(); - } - CFX_WideString psName = - CFX_WideString::FromLocal(FXFT_Get_Postscript_Name(m_Face)); - if (psName.IsEmpty()) { - psName = CFX_WideString::FromLocal("Untitled"); - } +CFX_ByteString CFX_Font::GetPsName() const { + if (!m_Face) + return CFX_ByteString(); + + CFX_ByteString psName = FXFT_Get_Postscript_Name(m_Face); + if (psName.IsEmpty()) + psName = "Untitled"; return psName; } + CFX_ByteString CFX_Font::GetFamilyName() const { if (!m_Face && !m_pSubstFont) { return CFX_ByteString(); diff --git a/core/fxge/ge/fx_ge_text.cpp b/core/fxge/ge/fx_ge_text.cpp index aeac66b4b0..042e6f2b5b 100644 --- a/core/fxge/ge/fx_ge_text.cpp +++ b/core/fxge/ge/fx_ge_text.cpp @@ -347,6 +347,21 @@ void DrawNormalTextHelper(CFX_DIBitmap* bitmap, } } +bool ShouldDrawDeviceText(const CFX_Font* pFont, uint32_t text_flags) { +#if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ + if (text_flags & FXFONT_CIDFONT) + return false; + + const CFX_ByteString bsPsName = pFont->GetPsName(); + if (bsPsName.Find("+ZJHL") != -1) + return false; + + if (bsPsName == "CNAAJI+cmex10") + return false; +#endif + return true; +} + } // namespace void Color2Argb(FX_ARGB& argb, @@ -431,16 +446,7 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, int nativetext_flags = text_flags; if (m_DeviceClass != FXDC_DISPLAY) { if (!(text_flags & FXTEXT_PRINTGRAPHICTEXT)) { - bool should_call_draw_device_text = true; -#if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ - if ((text_flags & FXFONT_CIDFONT) || - (pFont->GetPsName().Find( - CFX_WideString::FromLocal("+ZJHL").AsStringC()) != -1) || - (pFont->GetPsName() == CFX_WideString::FromLocal("CNAAJI+cmex10"))) { - should_call_draw_device_text = false; - } -#endif - if (should_call_draw_device_text && + if (ShouldDrawDeviceText(pFont, text_flags) && m_pDeviceDriver->DrawDeviceText(nChars, pCharPos, pFont, pCache, pText2Device, font_size, fill_color, 0, nullptr)) { @@ -450,14 +456,7 @@ FX_BOOL CFX_RenderDevice::DrawNormalText(int nChars, if (FXARGB_A(fill_color) < 255) return FALSE; } else if (!(text_flags & FXTEXT_NO_NATIVETEXT)) { - bool should_call_draw_device_text = true; -#if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ - if ((text_flags & FXFONT_CIDFONT) || - (pFont->GetPsName() == CFX_WideString::FromLocal("CNAAJI+cmex10"))) { - should_call_draw_device_text = false; - } -#endif - if (should_call_draw_device_text && + if (ShouldDrawDeviceText(pFont, text_flags) && m_pDeviceDriver->DrawDeviceText(nChars, pCharPos, pFont, pCache, pText2Device, font_size, fill_color, 0, nullptr)) { diff --git a/core/fxge/include/fx_font.h b/core/fxge/include/fx_font.h index a8eaecec59..023a6a0928 100644 --- a/core/fxge/include/fx_font.h +++ b/core/fxge/include/fx_font.h @@ -102,7 +102,7 @@ class CFX_Font { FX_BOOL IsBold() const; FX_BOOL IsFixedWidth() const; FX_BOOL IsVertical() const { return m_bVertical; } - CFX_WideString GetPsName() const; + CFX_ByteString GetPsName() const; CFX_ByteString GetFamilyName() const; CFX_ByteString GetFaceName() const; FX_BOOL IsTTFont() const; -- cgit v1.2.3