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 |