summaryrefslogtreecommitdiff
path: root/core/fpdfapi/render
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/render')
-rw-r--r--core/fpdfapi/render/cpdf_renderstatus.cpp11
-rw-r--r--core/fpdfapi/render/cpdf_textrenderer.cpp24
2 files changed, 19 insertions, 16 deletions
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index d41561c057..0b304747d4 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -66,7 +66,7 @@
namespace {
void ReleaseCachedType3(CPDF_Type3Font* pFont) {
- CPDF_Document* pDoc = pFont->m_pDocument;
+ CPDF_Document* pDoc = pFont->GetDocument();
if (!pDoc)
return;
@@ -1799,7 +1799,7 @@ bool CPDF_RenderStatus::ProcessText(CPDF_TextObject* textobj,
CFX_RetainPtr<CPDF_Type3Cache> CPDF_RenderStatus::GetCachedType3(
CPDF_Type3Font* pFont) {
- CPDF_Document* pDoc = pFont->m_pDocument;
+ CPDF_Document* pDoc = pFont->GetDocument();
if (!pDoc)
return nullptr;
@@ -2000,10 +2000,9 @@ void CPDF_RenderStatus::DrawTextPathWithPattern(const CPDF_TextObject* textobj,
CharPosList.Load(textobj->m_CharCodes, textobj->m_CharPos, pFont, font_size);
for (uint32_t i = 0; i < CharPosList.m_nChars; i++) {
FXTEXT_CHARPOS& charpos = CharPosList.m_pCharPos[i];
- auto* font =
- charpos.m_FallbackFontPosition == -1
- ? &pFont->m_Font
- : pFont->m_FontFallbacks[charpos.m_FallbackFontPosition].get();
+ auto* font = charpos.m_FallbackFontPosition == -1
+ ? pFont->GetFont()
+ : pFont->GetFontFallback(charpos.m_FallbackFontPosition);
const CFX_PathData* pPath =
font->LoadGlyphPath(charpos.m_GlyphIndex, charpos.m_FontCharWidth);
if (!pPath)
diff --git a/core/fpdfapi/render/cpdf_textrenderer.cpp b/core/fpdfapi/render/cpdf_textrenderer.cpp
index c45c1ef792..83e61478da 100644
--- a/core/fpdfapi/render/cpdf_textrenderer.cpp
+++ b/core/fpdfapi/render/cpdf_textrenderer.cpp
@@ -15,6 +15,14 @@
#include "core/fxge/cfx_pathdata.h"
#include "core/fxge/cfx_renderdevice.h"
+namespace {
+
+CFX_Font* GetFont(CPDF_Font* pFont, int32_t position) {
+ return position == -1 ? pFont->GetFont() : pFont->GetFontFallback(position);
+}
+
+} // namespace
+
// static
bool CPDF_TextRenderer::DrawTextPath(CFX_RenderDevice* pDevice,
const std::vector<uint32_t>& charCodes,
@@ -40,9 +48,8 @@ bool CPDF_TextRenderer::DrawTextPath(CFX_RenderDevice* pDevice,
int32_t curFontPosition = CharPosList.m_pCharPos[i].m_FallbackFontPosition;
if (fontPosition == curFontPosition)
continue;
- auto* font = fontPosition == -1
- ? &pFont->m_Font
- : pFont->m_FontFallbacks[fontPosition].get();
+
+ CFX_Font* font = GetFont(pFont, fontPosition);
if (!pDevice->DrawTextPath(i - startIndex,
CharPosList.m_pCharPos + startIndex, font,
font_size, pText2User, pUser2Device, pGraphState,
@@ -52,8 +59,7 @@ bool CPDF_TextRenderer::DrawTextPath(CFX_RenderDevice* pDevice,
fontPosition = curFontPosition;
startIndex = i;
}
- auto* font = fontPosition == -1 ? &pFont->m_Font
- : pFont->m_FontFallbacks[fontPosition].get();
+ CFX_Font* font = GetFont(pFont, fontPosition);
if (!pDevice->DrawTextPath(CharPosList.m_nChars - startIndex,
CharPosList.m_pCharPos + startIndex, font,
font_size, pText2User, pUser2Device, pGraphState,
@@ -145,9 +151,8 @@ bool CPDF_TextRenderer::DrawNormalText(CFX_RenderDevice* pDevice,
int32_t curFontPosition = CharPosList.m_pCharPos[i].m_FallbackFontPosition;
if (fontPosition == curFontPosition)
continue;
- auto* font = fontPosition == -1
- ? &pFont->m_Font
- : pFont->m_FontFallbacks[fontPosition].get();
+
+ CFX_Font* font = GetFont(pFont, fontPosition);
if (!pDevice->DrawNormalText(
i - startIndex, CharPosList.m_pCharPos + startIndex, font,
font_size, pText2Device, fill_argb, FXGE_flags)) {
@@ -156,8 +161,7 @@ bool CPDF_TextRenderer::DrawNormalText(CFX_RenderDevice* pDevice,
fontPosition = curFontPosition;
startIndex = i;
}
- auto* font = fontPosition == -1 ? &pFont->m_Font
- : pFont->m_FontFallbacks[fontPosition].get();
+ CFX_Font* font = GetFont(pFont, fontPosition);
if (!pDevice->DrawNormalText(CharPosList.m_nChars - startIndex,
CharPosList.m_pCharPos + startIndex, font,
font_size, pText2Device, fill_argb,