| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "core/fpdfapi/fpdf_render/render_int.h" | 7 #include "core/fpdfapi/fpdf_render/render_int.h" |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 m_pFormResource = pFormResource; | 192 m_pFormResource = pFormResource; |
| 193 m_pPageResource = m_pContext->GetPageResources(); | 193 m_pPageResource = m_pContext->GetPageResources(); |
| 194 if (pInitialStates && !m_pType3Char) { | 194 if (pInitialStates && !m_pType3Char) { |
| 195 m_InitialStates.CopyStates(*pInitialStates); | 195 m_InitialStates.CopyStates(*pInitialStates); |
| 196 if (pParentState) { | 196 if (pParentState) { |
| 197 const CPDF_ColorStateData* pColorData = | 197 const CPDF_ColorStateData* pColorData = |
| 198 m_InitialStates.m_ColorState.GetObject(); | 198 m_InitialStates.m_ColorState.GetObject(); |
| 199 const CPDF_ColorStateData* pParentData = | 199 const CPDF_ColorStateData* pParentData = |
| 200 pParentState->m_InitialStates.m_ColorState.GetObject(); | 200 pParentState->m_InitialStates.m_ColorState.GetObject(); |
| 201 if (!pColorData || pColorData->m_FillColor.IsNull()) { | 201 if (!pColorData || pColorData->m_FillColor.IsNull()) { |
| 202 CPDF_ColorStateData* pData = | 202 m_InitialStates.m_ColorState.MakePrivateCopy(); |
| 203 m_InitialStates.m_ColorState.GetPrivateCopy(); | 203 m_InitialStates.m_ColorState->m_FillRGB = pParentData->m_FillRGB; |
| 204 pData->m_FillRGB = pParentData->m_FillRGB; | 204 m_InitialStates.m_ColorState->m_FillColor.Copy( |
| 205 pData->m_FillColor.Copy(&pParentData->m_FillColor); | 205 &pParentData->m_FillColor); |
| 206 } | 206 } |
| 207 if (!pColorData || pColorData->m_StrokeColor.IsNull()) { | 207 if (!pColorData || pColorData->m_StrokeColor.IsNull()) { |
| 208 CPDF_ColorStateData* pData = | 208 m_InitialStates.m_ColorState.MakePrivateCopy(); |
| 209 m_InitialStates.m_ColorState.GetPrivateCopy(); | 209 m_InitialStates.m_ColorState->m_StrokeRGB = pParentData->m_FillRGB; |
| 210 pData->m_StrokeRGB = pParentData->m_FillRGB; | 210 m_InitialStates.m_ColorState->m_StrokeColor.Copy( |
| 211 pData->m_StrokeColor.Copy(&pParentData->m_StrokeColor); | 211 &pParentData->m_StrokeColor); |
| 212 } | 212 } |
| 213 } | 213 } |
| 214 } else { | 214 } else { |
| 215 m_InitialStates.DefaultStates(); | 215 m_InitialStates.DefaultStates(); |
| 216 } | 216 } |
| 217 m_pImageRenderer.reset(); | 217 m_pImageRenderer.reset(); |
| 218 m_Transparency = transparency; | 218 m_Transparency = transparency; |
| 219 return TRUE; | 219 return TRUE; |
| 220 } | 220 } |
| 221 void CPDF_RenderStatus::RenderObjectList( | 221 void CPDF_RenderStatus::RenderObjectList( |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 572 } else { | 572 } else { |
| 573 alpha = 255; | 573 alpha = 255; |
| 574 } | 574 } |
| 575 return m_Options.TranslateColor(ArgbEncode(alpha, rgb)); | 575 return m_Options.TranslateColor(ArgbEncode(alpha, rgb)); |
| 576 } | 576 } |
| 577 void CPDF_RenderStatus::ProcessClipPath(CPDF_ClipPath ClipPath, | 577 void CPDF_RenderStatus::ProcessClipPath(CPDF_ClipPath ClipPath, |
| 578 const CFX_Matrix* pObj2Device) { | 578 const CFX_Matrix* pObj2Device) { |
| 579 if (!ClipPath) { | 579 if (!ClipPath) { |
| 580 if (m_LastClipPath) { | 580 if (m_LastClipPath) { |
| 581 m_pDevice->RestoreState(true); | 581 m_pDevice->RestoreState(true); |
| 582 m_LastClipPath.SetNull(); | 582 m_LastClipPath.Clear(); |
| 583 } | 583 } |
| 584 return; | 584 return; |
| 585 } | 585 } |
| 586 if (m_LastClipPath == ClipPath) | 586 if (m_LastClipPath == ClipPath) |
| 587 return; | 587 return; |
| 588 | 588 |
| 589 m_LastClipPath = ClipPath; | 589 m_LastClipPath = ClipPath; |
| 590 m_pDevice->RestoreState(true); | 590 m_pDevice->RestoreState(true); |
| 591 int nClipPath = ClipPath.GetPathCount(); | 591 int nClipPath = ClipPath.GetPathCount(); |
| 592 for (int i = 0; i < nClipPath; ++i) { | 592 for (int i = 0; i < nClipPath; ++i) { |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 914 FX_BOOL bStroke) { | 914 FX_BOOL bStroke) { |
| 915 if (!pSrcStates) { | 915 if (!pSrcStates) { |
| 916 return nullptr; | 916 return nullptr; |
| 917 } | 917 } |
| 918 CPDF_GraphicStates* pStates = new CPDF_GraphicStates; | 918 CPDF_GraphicStates* pStates = new CPDF_GraphicStates; |
| 919 pStates->CopyStates(*pSrcStates); | 919 pStates->CopyStates(*pSrcStates); |
| 920 const CPDF_Color* pObjColor = bStroke | 920 const CPDF_Color* pObjColor = bStroke |
| 921 ? pSrcStates->m_ColorState.GetStrokeColor() | 921 ? pSrcStates->m_ColorState.GetStrokeColor() |
| 922 : pSrcStates->m_ColorState.GetFillColor(); | 922 : pSrcStates->m_ColorState.GetFillColor(); |
| 923 if (!pObjColor->IsNull()) { | 923 if (!pObjColor->IsNull()) { |
| 924 CPDF_ColorStateData* pColorData = pStates->m_ColorState.GetPrivateCopy(); | 924 pStates->m_ColorState.MakePrivateCopy(); |
| 925 pColorData->m_FillRGB = | 925 pStates->m_ColorState->m_FillRGB = |
| 926 bStroke ? pSrcStates->m_ColorState.GetObject()->m_StrokeRGB | 926 bStroke ? pSrcStates->m_ColorState->m_StrokeRGB |
| 927 : pSrcStates->m_ColorState.GetObject()->m_FillRGB; | 927 : pSrcStates->m_ColorState->m_FillRGB; |
| 928 pColorData->m_StrokeRGB = pColorData->m_FillRGB; | 928 pStates->m_ColorState->m_StrokeRGB = pStates->m_ColorState->m_FillRGB; |
| 929 } | 929 } |
| 930 return pStates; | 930 return pStates; |
| 931 } | 931 } |
| 932 | 932 |
| 933 CPDF_RenderContext::CPDF_RenderContext(CPDF_Page* pPage) | 933 CPDF_RenderContext::CPDF_RenderContext(CPDF_Page* pPage) |
| 934 : m_pDocument(pPage->m_pDocument), | 934 : m_pDocument(pPage->m_pDocument), |
| 935 m_pPageResources(pPage->m_pPageResources), | 935 m_pPageResources(pPage->m_pPageResources), |
| 936 m_pPageCache(pPage->GetRenderCache()) {} | 936 m_pPageCache(pPage->GetRenderCache()) {} |
| 937 | 937 |
| 938 CPDF_RenderContext::CPDF_RenderContext(CPDF_Document* pDoc, | 938 CPDF_RenderContext::CPDF_RenderContext(CPDF_Document* pDoc, |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1297 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left, | 1297 m_pDevice->StretchDIBits(m_pBitmapDevice->GetBitmap(), m_Rect.left, |
| 1298 m_Rect.top, m_Rect.Width(), m_Rect.Height()); | 1298 m_Rect.top, m_Rect.Width(), m_Rect.Height()); |
| 1299 } | 1299 } |
| 1300 } | 1300 } |
| 1301 | 1301 |
| 1302 #if defined _SKIA_SUPPORT_ | 1302 #if defined _SKIA_SUPPORT_ |
| 1303 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const { | 1303 void CPDF_RenderStatus::DebugVerifyDeviceIsPreMultiplied() const { |
| 1304 m_pDevice->DebugVerifyBitmapIsPreMultiplied(); | 1304 m_pDevice->DebugVerifyBitmapIsPreMultiplied(); |
| 1305 } | 1305 } |
| 1306 #endif | 1306 #endif |
| OLD | NEW |