| Index: core/fpdfapi/fpdf_render/fpdf_render.cpp
|
| diff --git a/core/fpdfapi/fpdf_render/fpdf_render.cpp b/core/fpdfapi/fpdf_render/fpdf_render.cpp
|
| index 27c9fa9bd22d403e88842540fe1913d18e72e548..d7c6e2f6042e1674289d77a2491bfef70e44c7f6 100644
|
| --- a/core/fpdfapi/fpdf_render/fpdf_render.cpp
|
| +++ b/core/fpdfapi/fpdf_render/fpdf_render.cpp
|
| @@ -10,7 +10,6 @@
|
|
|
| #include "core/fpdfapi/fpdf_font/cpdf_type3char.h"
|
| #include "core/fpdfapi/fpdf_font/cpdf_type3font.h"
|
| -#include "core/fpdfapi/fpdf_page/cpdf_colorstatedata.h"
|
| #include "core/fpdfapi/fpdf_page/cpdf_graphicstates.h"
|
| #include "core/fpdfapi/fpdf_page/include/cpdf_form.h"
|
| #include "core/fpdfapi/fpdf_page/include/cpdf_formobject.h"
|
| @@ -510,20 +509,20 @@ CPDF_TransferFunc* CPDF_RenderStatus::GetTransferFunc(CPDF_Object* pObj) const {
|
|
|
| FX_ARGB CPDF_RenderStatus::GetFillArgb(CPDF_PageObject* pObj,
|
| FX_BOOL bType3) const {
|
| - const CPDF_ColorStateData* pColorData = pObj->m_ColorState.GetObject();
|
| + const CPDF_ColorState* pColorState = &pObj->m_ColorState;
|
| if (m_pType3Char && !bType3 &&
|
| (!m_pType3Char->m_bColored ||
|
| (m_pType3Char->m_bColored &&
|
| - (!pColorData || pColorData->m_FillColor.IsNull())))) {
|
| + (!*pColorState || pColorState->GetFillColor()->IsNull())))) {
|
| return m_T3FillColor;
|
| }
|
| - if (!pColorData || pColorData->m_FillColor.IsNull()) {
|
| - pColorData = m_InitialStates.m_ColorState.GetObject();
|
| - }
|
| - FX_COLORREF rgb = pColorData->m_FillRGB;
|
| - if (rgb == (uint32_t)-1) {
|
| + if (!*pColorState || pColorState->GetFillColor()->IsNull())
|
| + pColorState = &m_InitialStates.m_ColorState;
|
| +
|
| + FX_COLORREF rgb = pColorState->GetFillRGB();
|
| + if (rgb == (uint32_t)-1)
|
| return 0;
|
| - }
|
| +
|
| int32_t alpha =
|
| static_cast<int32_t>((pObj->m_GeneralState.GetFillAlpha() * 255));
|
| if (pObj->m_GeneralState.GetTR()) {
|
| @@ -538,19 +537,20 @@ FX_ARGB CPDF_RenderStatus::GetFillArgb(CPDF_PageObject* pObj,
|
| }
|
|
|
| FX_ARGB CPDF_RenderStatus::GetStrokeArgb(CPDF_PageObject* pObj) const {
|
| - const CPDF_ColorStateData* pColorData = pObj->m_ColorState.GetObject();
|
| - if (m_pType3Char && (!m_pType3Char->m_bColored ||
|
| - (m_pType3Char->m_bColored &&
|
| - (!pColorData || pColorData->m_StrokeColor.IsNull())))) {
|
| + const CPDF_ColorState* pColorState = &pObj->m_ColorState;
|
| + if (m_pType3Char &&
|
| + (!m_pType3Char->m_bColored ||
|
| + (m_pType3Char->m_bColored &&
|
| + (!*pColorState || pColorState->GetStrokeColor()->IsNull())))) {
|
| return m_T3FillColor;
|
| }
|
| - if (!pColorData || pColorData->m_StrokeColor.IsNull()) {
|
| - pColorData = m_InitialStates.m_ColorState.GetObject();
|
| - }
|
| - FX_COLORREF rgb = pColorData->m_StrokeRGB;
|
| - if (rgb == (uint32_t)-1) {
|
| + if (!*pColorState || pColorState->GetStrokeColor()->IsNull())
|
| + pColorState = &m_InitialStates.m_ColorState;
|
| +
|
| + FX_COLORREF rgb = pColorState->GetStrokeRGB();
|
| + if (rgb == (uint32_t)-1)
|
| return 0;
|
| - }
|
| +
|
| int32_t alpha = static_cast<int32_t>(pObj->m_GeneralState.GetStrokeAlpha() *
|
| 255); // not rounded.
|
| if (pObj->m_GeneralState.GetTR()) {
|
|
|