diff options
author | Lei Zhang <thestig@chromium.org> | 2018-10-25 19:02:50 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-10-25 19:02:50 +0000 |
commit | 0c327657fb8c23934c5beae520e7a97a48e2eef6 (patch) | |
tree | 75c5749124f32c464d29149e125e47325f0cbd2d /core/fpdfapi/page | |
parent | 94f45b29897f801151ecd085fa083f84558065ee (diff) | |
download | pdfium-0c327657fb8c23934c5beae520e7a97a48e2eef6.tar.xz |
Change FXDIB_BLEND_FOO typedefs to an enum class.
BUG=pdfium:1085
Change-Id: Ieb43d4588e1d689e327e428dcbbf7adba45ce178
Reviewed-on: https://pdfium-review.googlesource.com/c/44545
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/page')
-rw-r--r-- | core/fpdfapi/page/cpdf_allstates.cpp | 2 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_contentparser.cpp | 2 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_generalstate.cpp | 74 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_generalstate.h | 6 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_pageobjectholder.h | 5 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_pageobjectholder_unittest.cpp | 6 |
6 files changed, 49 insertions, 46 deletions
diff --git a/core/fpdfapi/page/cpdf_allstates.cpp b/core/fpdfapi/page/cpdf_allstates.cpp index 3e6692b223..81df19210a 100644 --- a/core/fpdfapi/page/cpdf_allstates.cpp +++ b/core/fpdfapi/page/cpdf_allstates.cpp @@ -99,7 +99,7 @@ void CPDF_AllStates::ProcessExtGS(CPDF_Dictionary* pGS, CPDF_Array* pArray = pObject->AsArray(); m_GeneralState.SetBlendMode(pArray ? pArray->GetStringAt(0) : pObject->GetString()); - if (m_GeneralState.GetBlendType() > FXDIB_BLEND_MULTIPLY) + if (m_GeneralState.GetBlendType() > BlendMode::kMultiply) pParser->GetPageObjectHolder()->SetBackgroundAlphaNeeded(true); break; } diff --git a/core/fpdfapi/page/cpdf_contentparser.cpp b/core/fpdfapi/page/cpdf_contentparser.cpp index cf31447697..90d6925045 100644 --- a/core/fpdfapi/page/cpdf_contentparser.cpp +++ b/core/fpdfapi/page/cpdf_contentparser.cpp @@ -103,7 +103,7 @@ CPDF_ContentParser::CPDF_ContentParser(CPDF_Form* pForm, } if (pForm->GetTransparency().IsGroup()) { CPDF_GeneralState* pState = &m_pParser->GetCurStates()->m_GeneralState; - pState->SetBlendType(FXDIB_BLEND_NORMAL); + pState->SetBlendType(BlendMode::kNormal); pState->SetStrokeAlpha(1.0f); pState->SetFillAlpha(1.0f); pState->SetSoftMask(nullptr); diff --git a/core/fpdfapi/page/cpdf_generalstate.cpp b/core/fpdfapi/page/cpdf_generalstate.cpp index 7687626e54..cf942ab560 100644 --- a/core/fpdfapi/page/cpdf_generalstate.cpp +++ b/core/fpdfapi/page/cpdf_generalstate.cpp @@ -27,43 +27,43 @@ int RI_StringToId(const ByteString& ri) { return 0; } -int GetBlendTypeInternal(const ByteString& mode) { +BlendMode GetBlendTypeInternal(const ByteString& mode) { switch (mode.GetID()) { case FXBSTR_ID('N', 'o', 'r', 'm'): case FXBSTR_ID('C', 'o', 'm', 'p'): - return FXDIB_BLEND_NORMAL; + return BlendMode::kNormal; case FXBSTR_ID('M', 'u', 'l', 't'): - return FXDIB_BLEND_MULTIPLY; + return BlendMode::kMultiply; case FXBSTR_ID('S', 'c', 'r', 'e'): - return FXDIB_BLEND_SCREEN; + return BlendMode::kScreen; case FXBSTR_ID('O', 'v', 'e', 'r'): - return FXDIB_BLEND_OVERLAY; + return BlendMode::kOverlay; case FXBSTR_ID('D', 'a', 'r', 'k'): - return FXDIB_BLEND_DARKEN; + return BlendMode::kDarken; case FXBSTR_ID('L', 'i', 'g', 'h'): - return FXDIB_BLEND_LIGHTEN; + return BlendMode::kLighten; case FXBSTR_ID('C', 'o', 'l', 'o'): if (mode.GetLength() == 10) - return FXDIB_BLEND_COLORDODGE; + return BlendMode::kColorDodge; if (mode.GetLength() == 9) - return FXDIB_BLEND_COLORBURN; - return FXDIB_BLEND_COLOR; + return BlendMode::kColorBurn; + return BlendMode::kColor; case FXBSTR_ID('H', 'a', 'r', 'd'): - return FXDIB_BLEND_HARDLIGHT; + return BlendMode::kHardLight; case FXBSTR_ID('S', 'o', 'f', 't'): - return FXDIB_BLEND_SOFTLIGHT; + return BlendMode::kSoftLight; case FXBSTR_ID('D', 'i', 'f', 'f'): - return FXDIB_BLEND_DIFFERENCE; + return BlendMode::kDifference; case FXBSTR_ID('E', 'x', 'c', 'l'): - return FXDIB_BLEND_EXCLUSION; + return BlendMode::kExclusion; case FXBSTR_ID('H', 'u', 'e', 0): - return FXDIB_BLEND_HUE; + return BlendMode::kHue; case FXBSTR_ID('S', 'a', 't', 'u'): - return FXDIB_BLEND_SATURATION; + return BlendMode::kSaturation; case FXBSTR_ID('L', 'u', 'm', 'i'): - return FXDIB_BLEND_LUMINOSITY; + return BlendMode::kLuminosity; } - return FXDIB_BLEND_NORMAL; + return BlendMode::kNormal; } } // namespace @@ -81,48 +81,48 @@ void CPDF_GeneralState::SetRenderIntent(const ByteString& ri) { ByteString CPDF_GeneralState::GetBlendMode() const { switch (GetBlendType()) { - case FXDIB_BLEND_NORMAL: + case BlendMode::kNormal: return ByteString(pdfium::transparency::kNormal); - case FXDIB_BLEND_MULTIPLY: + case BlendMode::kMultiply: return ByteString(pdfium::transparency::kMultiply); - case FXDIB_BLEND_SCREEN: + case BlendMode::kScreen: return ByteString(pdfium::transparency::kScreen); - case FXDIB_BLEND_OVERLAY: + case BlendMode::kOverlay: return ByteString(pdfium::transparency::kOverlay); - case FXDIB_BLEND_DARKEN: + case BlendMode::kDarken: return ByteString(pdfium::transparency::kDarken); - case FXDIB_BLEND_LIGHTEN: + case BlendMode::kLighten: return ByteString(pdfium::transparency::kLighten); - case FXDIB_BLEND_COLORDODGE: + case BlendMode::kColorDodge: return ByteString(pdfium::transparency::kColorDodge); - case FXDIB_BLEND_COLORBURN: + case BlendMode::kColorBurn: return ByteString(pdfium::transparency::kColorBurn); - case FXDIB_BLEND_HARDLIGHT: + case BlendMode::kHardLight: return ByteString(pdfium::transparency::kHardLight); - case FXDIB_BLEND_SOFTLIGHT: + case BlendMode::kSoftLight: return ByteString(pdfium::transparency::kSoftLight); - case FXDIB_BLEND_DIFFERENCE: + case BlendMode::kDifference: return ByteString(pdfium::transparency::kDifference); - case FXDIB_BLEND_EXCLUSION: + case BlendMode::kExclusion: return ByteString(pdfium::transparency::kExclusion); - case FXDIB_BLEND_HUE: + case BlendMode::kHue: return ByteString(pdfium::transparency::kHue); - case FXDIB_BLEND_SATURATION: + case BlendMode::kSaturation: return ByteString(pdfium::transparency::kSaturation); - case FXDIB_BLEND_COLOR: + case BlendMode::kColor: return ByteString(pdfium::transparency::kColor); - case FXDIB_BLEND_LUMINOSITY: + case BlendMode::kLuminosity: return ByteString(pdfium::transparency::kLuminosity); } return ByteString(pdfium::transparency::kNormal); } -int CPDF_GeneralState::GetBlendType() const { +BlendMode CPDF_GeneralState::GetBlendType() const { const StateData* pData = m_Ref.GetObject(); - return pData ? pData->m_BlendType : FXDIB_BLEND_NORMAL; + return pData ? pData->m_BlendType : BlendMode::kNormal; } -void CPDF_GeneralState::SetBlendType(int type) { +void CPDF_GeneralState::SetBlendType(BlendMode type) { m_Ref.GetPrivateCopy()->m_BlendType = type; } diff --git a/core/fpdfapi/page/cpdf_generalstate.h b/core/fpdfapi/page/cpdf_generalstate.h index 096271fd8b..4df3d0ebe0 100644 --- a/core/fpdfapi/page/cpdf_generalstate.h +++ b/core/fpdfapi/page/cpdf_generalstate.h @@ -29,8 +29,8 @@ class CPDF_GeneralState { void SetRenderIntent(const ByteString& ri); ByteString GetBlendMode() const; - int GetBlendType() const; - void SetBlendType(int type); + BlendMode GetBlendType() const; + void SetBlendType(BlendMode type); float GetFillAlpha() const; void SetFillAlpha(float alpha); @@ -85,7 +85,7 @@ class CPDF_GeneralState { ~StateData() override; ByteString m_BlendMode = pdfium::transparency::kNormal; - int m_BlendType = FXDIB_BLEND_NORMAL; + BlendMode m_BlendType = BlendMode::kNormal; UnownedPtr<CPDF_Object> m_pSoftMask; CFX_Matrix m_SMaskMatrix; float m_StrokeAlpha = 1.0f; diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.h b/core/fpdfapi/page/cpdf_pageobjectholder.h index 4f5a60f79d..59493293f9 100644 --- a/core/fpdfapi/page/cpdf_pageobjectholder.h +++ b/core/fpdfapi/page/cpdf_pageobjectholder.h @@ -18,6 +18,7 @@ #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" #include "core/fxcrt/unowned_ptr.h" +#include "core/fxge/fx_dib.h" class CPDF_ContentParser; class CPDF_Dictionary; @@ -30,13 +31,15 @@ class PauseIndicatorIface; struct GraphicsData { float fillAlpha; float strokeAlpha; - int blendType; + BlendMode blendType; + bool operator<(const GraphicsData& other) const; }; struct FontData { ByteString baseFont; ByteString type; + bool operator<(const FontData& other) const; }; diff --git a/core/fpdfapi/page/cpdf_pageobjectholder_unittest.cpp b/core/fpdfapi/page/cpdf_pageobjectholder_unittest.cpp index ddad795fea..77602562f3 100644 --- a/core/fpdfapi/page/cpdf_pageobjectholder_unittest.cpp +++ b/core/fpdfapi/page/cpdf_pageobjectholder_unittest.cpp @@ -18,7 +18,7 @@ TEST(CPDFPageObjectHolder, GraphicsDataAsKey) { // Verify self-comparisions. for (float c1 : {fMin, 1.0f, 2.0f, fMax, fInf, fNan}) { for (float c2 : {fMin, 1.0f, 2.0f, fMax, fInf, fNan}) { - for (int c3 : {1, 2}) + for (BlendMode c3 : {BlendMode::kMultiply, BlendMode::kScreen}) EXPECT_FALSE(GraphicsData({c1, c2, c3}) < GraphicsData({c1, c2, c3})); } } @@ -27,7 +27,7 @@ TEST(CPDFPageObjectHolder, GraphicsDataAsKey) { // Insert in reverse index permuted order. size_t x = 0; - for (int c3 : {2, 1}) { + for (BlendMode c3 : {BlendMode::kScreen, BlendMode::kMultiply}) { for (float c2 : {fNan, fInf, fMax, 2.0f, 1.0f, fMin}) { for (float c1 : {fNan, fInf, fMax, 2.0f, 1.0f, fMin}) { graphics_map[{c1, c2, c3}] = x++; @@ -56,7 +56,7 @@ TEST(CPDFPageObjectHolder, GraphicsDataAsKey) { EXPECT_EQ(72u, x); // Erase in forward index permuted order. - for (int c3 : {1, 2}) { + for (BlendMode c3 : {BlendMode::kMultiply, BlendMode::kScreen}) { for (float c2 : {fMin, 1.0f, 2.0f, fMax, fInf, fNan}) { for (float c1 : {fMin, 1.0f, 2.0f, fMax, fInf, fNan}) graphics_map.erase({c1, c2, c3}); |