diff options
Diffstat (limited to 'core/fpdfapi')
-rw-r--r-- | core/fpdfapi/page/cpdf_colorstate.cpp | 43 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_colorstate.h | 16 | ||||
-rw-r--r-- | core/fpdfapi/render/cpdf_renderstatus.cpp | 41 |
3 files changed, 54 insertions, 46 deletions
diff --git a/core/fpdfapi/page/cpdf_colorstate.cpp b/core/fpdfapi/page/cpdf_colorstate.cpp index 693fcf1a93..2361552556 100644 --- a/core/fpdfapi/page/cpdf_colorstate.cpp +++ b/core/fpdfapi/page/cpdf_colorstate.cpp @@ -25,20 +25,20 @@ void CPDF_ColorState::SetDefault() { m_Ref.GetPrivateCopy()->SetDefault(); } -uint32_t CPDF_ColorState::GetFillRGB() const { - return m_Ref.GetObject()->m_FillRGB; +FX_COLORREF CPDF_ColorState::GetFillColorRef() const { + return m_Ref.GetObject()->m_FillColorRef; } -void CPDF_ColorState::SetFillRGB(uint32_t rgb) { - m_Ref.GetPrivateCopy()->m_FillRGB = rgb; +void CPDF_ColorState::SetFillColorRef(FX_COLORREF colorref) { + m_Ref.GetPrivateCopy()->m_FillColorRef = colorref; } -uint32_t CPDF_ColorState::GetStrokeRGB() const { - return m_Ref.GetObject()->m_StrokeRGB; +FX_COLORREF CPDF_ColorState::GetStrokeColorRef() const { + return m_Ref.GetObject()->m_StrokeColorRef; } -void CPDF_ColorState::SetStrokeRGB(uint32_t rgb) { - m_Ref.GetPrivateCopy()->m_StrokeRGB = rgb; +void CPDF_ColorState::SetStrokeColorRef(FX_COLORREF colorref) { + m_Ref.GetPrivateCopy()->m_StrokeColorRef = colorref; } const CPDF_Color* CPDF_ColorState::GetFillColor() const { @@ -73,14 +73,15 @@ void CPDF_ColorState::SetFillColor(CPDF_ColorSpace* pCS, float* pValue, uint32_t nValues) { ColorData* pData = m_Ref.GetPrivateCopy(); - SetColor(pData->m_FillColor, pData->m_FillRGB, pCS, pValue, nValues); + SetColor(pData->m_FillColor, &pData->m_FillColorRef, pCS, pValue, nValues); } void CPDF_ColorState::SetStrokeColor(CPDF_ColorSpace* pCS, float* pValue, uint32_t nValues) { ColorData* pData = m_Ref.GetPrivateCopy(); - SetColor(pData->m_StrokeColor, pData->m_StrokeRGB, pCS, pValue, nValues); + SetColor(pData->m_StrokeColor, &pData->m_StrokeColorRef, pCS, pValue, + nValues); } void CPDF_ColorState::SetFillPattern(CPDF_Pattern* pPattern, @@ -94,11 +95,11 @@ void CPDF_ColorState::SetFillPattern(CPDF_Pattern* pPattern, bool ret = pData->m_FillColor.GetRGB(&R, &G, &B); if (CPDF_TilingPattern* pTilingPattern = pPattern->AsTilingPattern()) { if (!ret && pTilingPattern->colored()) { - pData->m_FillRGB = 0x00BFBFBF; + pData->m_FillColorRef = 0x00BFBFBF; return; } } - pData->m_FillRGB = ret ? FXSYS_RGB(R, G, B) : 0xFFFFFFFF; + pData->m_FillColorRef = ret ? FXSYS_RGB(R, G, B) : 0xFFFFFFFF; } void CPDF_ColorState::SetStrokePattern(CPDF_Pattern* pPattern, @@ -112,16 +113,16 @@ void CPDF_ColorState::SetStrokePattern(CPDF_Pattern* pPattern, bool ret = pData->m_StrokeColor.GetRGB(&R, &G, &B); if (CPDF_TilingPattern* pTilingPattern = pPattern->AsTilingPattern()) { if (!ret && pTilingPattern->colored()) { - pData->m_StrokeRGB = 0x00BFBFBF; + pData->m_StrokeColorRef = 0x00BFBFBF; return; } } - pData->m_StrokeRGB = + pData->m_StrokeColorRef = pData->m_StrokeColor.GetRGB(&R, &G, &B) ? FXSYS_RGB(R, G, B) : 0xFFFFFFFF; } void CPDF_ColorState::SetColor(CPDF_Color& color, - uint32_t& rgb, + FX_COLORREF* colorref, CPDF_ColorSpace* pCS, float* pValue, uint32_t nValues) { @@ -137,13 +138,15 @@ void CPDF_ColorState::SetColor(CPDF_Color& color, int R; int G; int B; - rgb = color.GetRGB(&R, &G, &B) ? FXSYS_RGB(R, G, B) : 0xFFFFFFFF; + *colorref = color.GetRGB(&R, &G, &B) ? FXSYS_RGB(R, G, B) : 0xFFFFFFFF; } -CPDF_ColorState::ColorData::ColorData() : m_FillRGB(0), m_StrokeRGB(0) {} +CPDF_ColorState::ColorData::ColorData() + : m_FillColorRef(0), m_StrokeColorRef(0) {} CPDF_ColorState::ColorData::ColorData(const ColorData& src) - : m_FillRGB(src.m_FillRGB), m_StrokeRGB(src.m_StrokeRGB) { + : m_FillColorRef(src.m_FillColorRef), + m_StrokeColorRef(src.m_StrokeColorRef) { m_FillColor.Copy(&src.m_FillColor); m_StrokeColor.Copy(&src.m_StrokeColor); } @@ -151,8 +154,8 @@ CPDF_ColorState::ColorData::ColorData(const ColorData& src) CPDF_ColorState::ColorData::~ColorData() {} void CPDF_ColorState::ColorData::SetDefault() { - m_FillRGB = 0; - m_StrokeRGB = 0; + m_FillColorRef = 0; + m_StrokeColorRef = 0; m_FillColor.SetColorSpace(CPDF_ColorSpace::GetStockCS(PDFCS_DEVICEGRAY)); m_StrokeColor.SetColorSpace(CPDF_ColorSpace::GetStockCS(PDFCS_DEVICEGRAY)); } diff --git a/core/fpdfapi/page/cpdf_colorstate.h b/core/fpdfapi/page/cpdf_colorstate.h index cae79b28e2..591610a753 100644 --- a/core/fpdfapi/page/cpdf_colorstate.h +++ b/core/fpdfapi/page/cpdf_colorstate.h @@ -10,6 +10,7 @@ #include "core/fpdfapi/page/cpdf_color.h" #include "core/fxcrt/fx_system.h" #include "core/fxcrt/shared_copy_on_write.h" +#include "core/fxge/fx_dib.h" class CPDF_Color; class CPDF_ColorSpace; @@ -24,11 +25,11 @@ class CPDF_ColorState { void Emplace(); void SetDefault(); - uint32_t GetFillRGB() const; - void SetFillRGB(uint32_t rgb); + FX_COLORREF GetFillColorRef() const; + void SetFillColorRef(FX_COLORREF colorref); - uint32_t GetStrokeRGB() const; - void SetStrokeRGB(uint32_t rgb); + FX_COLORREF GetStrokeColorRef() const; + void SetStrokeColorRef(FX_COLORREF colorref); const CPDF_Color* GetFillColor() const; CPDF_Color* GetMutableFillColor(); @@ -54,15 +55,14 @@ class CPDF_ColorState { void SetDefault(); - // TODO(thestig): Rename these to BGR. - uint32_t m_FillRGB; - uint32_t m_StrokeRGB; + FX_COLORREF m_FillColorRef; + FX_COLORREF m_StrokeColorRef; CPDF_Color m_FillColor; CPDF_Color m_StrokeColor; }; void SetColor(CPDF_Color& color, - uint32_t& rgb, + FX_COLORREF* colorref, CPDF_ColorSpace* pCS, float* pValue, uint32_t nValues); diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp index 1ded1ca496..a0b6713274 100644 --- a/core/fpdfapi/render/cpdf_renderstatus.cpp +++ b/core/fpdfapi/render/cpdf_renderstatus.cpp @@ -1046,14 +1046,14 @@ bool CPDF_RenderStatus::Initialize(CPDF_RenderContext* pContext, m_InitialStates.CopyStates(*pInitialStates); if (pParentState) { if (!m_InitialStates.m_ColorState.HasFillColor()) { - m_InitialStates.m_ColorState.SetFillRGB( - pParentState->m_InitialStates.m_ColorState.GetFillRGB()); + m_InitialStates.m_ColorState.SetFillColorRef( + pParentState->m_InitialStates.m_ColorState.GetFillColorRef()); m_InitialStates.m_ColorState.GetMutableFillColor()->Copy( pParentState->m_InitialStates.m_ColorState.GetFillColor()); } if (!m_InitialStates.m_ColorState.HasStrokeColor()) { - m_InitialStates.m_ColorState.SetStrokeRGB( - pParentState->m_InitialStates.m_ColorState.GetFillRGB()); + m_InitialStates.m_ColorState.SetStrokeColorRef( + pParentState->m_InitialStates.m_ColorState.GetFillColorRef()); m_InitialStates.m_ColorState.GetMutableStrokeColor()->Copy( pParentState->m_InitialStates.m_ColorState.GetStrokeColor()); } @@ -1357,8 +1357,8 @@ FX_ARGB CPDF_RenderStatus::GetFillArgb(CPDF_PageObject* pObj, if (MissingFillColor(pColorState)) pColorState = &m_InitialStates.m_ColorState; - FX_COLORREF bgr = pColorState->GetFillRGB(); - if (bgr == 0xFFFFFFFF) + FX_COLORREF colorref = pColorState->GetFillColorRef(); + if (colorref == 0xFFFFFFFF) return 0; int32_t alpha = @@ -1368,10 +1368,12 @@ FX_ARGB CPDF_RenderStatus::GetFillArgb(CPDF_PageObject* pObj, pObj->m_GeneralState.SetTransferFunc( GetTransferFunc(pObj->m_GeneralState.GetTR())); } - if (pObj->m_GeneralState.GetTransferFunc()) - bgr = pObj->m_GeneralState.GetTransferFunc()->TranslateColor(bgr); + if (pObj->m_GeneralState.GetTransferFunc()) { + colorref = + pObj->m_GeneralState.GetTransferFunc()->TranslateColor(colorref); + } } - return m_Options.TranslateColor(ArgbEncode(alpha, bgr)); + return m_Options.TranslateColor(ArgbEncode(alpha, colorref)); } FX_ARGB CPDF_RenderStatus::GetStrokeArgb(CPDF_PageObject* pObj) const { @@ -1382,8 +1384,8 @@ FX_ARGB CPDF_RenderStatus::GetStrokeArgb(CPDF_PageObject* pObj) const { if (MissingStrokeColor(pColorState)) pColorState = &m_InitialStates.m_ColorState; - FX_COLORREF bgr = pColorState->GetStrokeRGB(); - if (bgr == 0xFFFFFFFF) + FX_COLORREF colorref = pColorState->GetStrokeColorRef(); + if (colorref == 0xFFFFFFFF) return 0; int32_t alpha = static_cast<int32_t>(pObj->m_GeneralState.GetStrokeAlpha() * @@ -1393,10 +1395,12 @@ FX_ARGB CPDF_RenderStatus::GetStrokeArgb(CPDF_PageObject* pObj) const { pObj->m_GeneralState.SetTransferFunc( GetTransferFunc(pObj->m_GeneralState.GetTR())); } - if (pObj->m_GeneralState.GetTransferFunc()) - bgr = pObj->m_GeneralState.GetTransferFunc()->TranslateColor(bgr); + if (pObj->m_GeneralState.GetTransferFunc()) { + colorref = + pObj->m_GeneralState.GetTransferFunc()->TranslateColor(colorref); + } } - return m_Options.TranslateColor(ArgbEncode(alpha, bgr)); + return m_Options.TranslateColor(ArgbEncode(alpha, colorref)); } void CPDF_RenderStatus::ProcessClipPath(const CPDF_ClipPath& ClipPath, @@ -1710,10 +1714,11 @@ std::unique_ptr<CPDF_GraphicStates> CPDF_RenderStatus::CloneObjStates( ? pSrcStates->m_ColorState.GetStrokeColor() : pSrcStates->m_ColorState.GetFillColor(); if (!pObjColor->IsNull()) { - pStates->m_ColorState.SetFillRGB( - bStroke ? pSrcStates->m_ColorState.GetStrokeRGB() - : pSrcStates->m_ColorState.GetFillRGB()); - pStates->m_ColorState.SetStrokeRGB(pStates->m_ColorState.GetFillRGB()); + pStates->m_ColorState.SetFillColorRef( + bStroke ? pSrcStates->m_ColorState.GetStrokeColorRef() + : pSrcStates->m_ColorState.GetFillColorRef()); + pStates->m_ColorState.SetStrokeColorRef( + pStates->m_ColorState.GetFillColorRef()); } return pStates; } |