CPDF_GraphicStates* CPDF_RenderStatus::CloneObjStates( const CPDF_GraphicStates* pSrcStates, FX_BOOL bStroke) { if (!pSrcStates) return nullptr; CPDF_GraphicStates* pStates = new CPDF_GraphicStates; pStates->CopyStates(*pSrcStates); const CPDF_Color* pObjColor = bStroke ? 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()); } return pStates; }
CPDF_GraphicStates* CPDF_RenderStatus::CloneObjStates( const CPDF_GraphicStates* pSrcStates, FX_BOOL bStroke) { if (!pSrcStates) { return NULL; } CPDF_GraphicStates* pStates = new CPDF_GraphicStates; pStates->CopyStates(*pSrcStates); CPDF_Color* pObjColor = bStroke ? pSrcStates->m_ColorState.GetStrokeColor() : pSrcStates->m_ColorState.GetFillColor(); if (!pObjColor->IsNull()) { CPDF_ColorStateData* pColorData = pStates->m_ColorState.GetModify(); pColorData->m_FillRGB = bStroke ? pSrcStates->m_ColorState.GetObject()->m_StrokeRGB : pSrcStates->m_ColorState.GetObject()->m_FillRGB; pColorData->m_StrokeRGB = pColorData->m_FillRGB; } return pStates; }