diff options
author | thestig <thestig@chromium.org> | 2016-05-20 17:28:24 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-05-20 17:28:24 -0700 |
commit | 8f5f897b50918fe83da894d9e7a34bbe314244de (patch) | |
tree | d268a9792cbf9fb66fe60820c65daa716ca39cbf /core/fpdfapi/fpdf_page/fpdf_page_parser.cpp | |
parent | a2c06e4a667a45a267f9382d0d90ab689c89d0cf (diff) | |
download | pdfium-8f5f897b50918fe83da894d9e7a34bbe314244de.tar.xz |
Add an enum to represent text rendering modes.
Review-Url: https://codereview.chromium.org/1999553002
Diffstat (limited to 'core/fpdfapi/fpdf_page/fpdf_page_parser.cpp')
-rw-r--r-- | core/fpdfapi/fpdf_page/fpdf_page_parser.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp index 0374915af4..4a7b6ad403 100644 --- a/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp +++ b/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp @@ -816,8 +816,10 @@ void CPDF_StreamContentParser::Handle_EndText() { if (m_ClipTextList.empty()) return; - if (m_pCurStates->m_TextState.GetObject()->m_TextMode >= 4) + if (TextRenderingModeIsClipMode( + m_pCurStates->m_TextState.GetObject()->m_TextMode)) { m_pCurStates->m_ClipPath.AppendTexts(&m_ClipTextList); + } m_ClipTextList.clear(); } @@ -1251,17 +1253,14 @@ void CPDF_StreamContentParser::AddTextObject(CFX_ByteString* pStrs, if (nsegs == 0) { return; } - int textmode; - if (pFont->IsType3Font()) { - textmode = 0; - } else { - textmode = m_pCurStates->m_TextState.GetObject()->m_TextMode; - } + const TextRenderingMode text_mode = + pFont->IsType3Font() ? TextRenderingMode::MODE_FILL + : m_pCurStates->m_TextState.GetObject()->m_TextMode; { std::unique_ptr<CPDF_TextObject> pText(new CPDF_TextObject); m_pLastTextObject = pText.get(); SetGraphicStates(m_pLastTextObject, TRUE, TRUE, TRUE); - if (textmode && textmode != 3 && textmode != 4 && textmode != 7) { + if (TextRenderingModeIsStrokeMode(text_mode)) { FX_FLOAT* pCTM = pText->m_TextState.GetModify()->m_CTM; pCTM[0] = m_pCurStates->m_CTM.a; pCTM[1] = m_pCurStates->m_CTM.c; @@ -1278,7 +1277,7 @@ void CPDF_StreamContentParser::AddTextObject(CFX_ByteString* pStrs, m_pCurStates->m_TextHorzScale, m_Level); m_pCurStates->m_TextX += x_advance; m_pCurStates->m_TextY += y_advance; - if (textmode > 3) { + if (TextRenderingModeIsClipMode(text_mode)) { m_ClipTextList.push_back( std::unique_ptr<CPDF_TextObject>(pText->Clone())); } @@ -1380,10 +1379,8 @@ void CPDF_StreamContentParser::OnChangeTextMatrix() { void CPDF_StreamContentParser::Handle_SetTextRenderMode() { int mode = GetInteger(0); - if (mode < 0 || mode > 7) { - return; - } - m_pCurStates->m_TextState.GetModify()->m_TextMode = mode; + SetTextRenderingModeFromInt( + mode, &m_pCurStates->m_TextState.GetModify()->m_TextMode); } void CPDF_StreamContentParser::Handle_SetTextRise() { |