| 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 "render_int.h" | 7 #include "render_int.h" |
| 8 | 8 |
| 9 #include "core/include/fpdfapi/fpdf_module.h" | 9 #include "core/include/fpdfapi/fpdf_module.h" |
| 10 #include "core/include/fpdfapi/fpdf_render.h" | 10 #include "core/include/fpdfapi/fpdf_render.h" |
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 if (!buffer.Initialize(m_pContext, m_pDevice, rect, pObj, &m_Options, res)) { | 439 if (!buffer.Initialize(m_pContext, m_pDevice, rect, pObj, &m_Options, res)) { |
| 440 return; | 440 return; |
| 441 } | 441 } |
| 442 CFX_Matrix matrix = *pObj2Device; | 442 CFX_Matrix matrix = *pObj2Device; |
| 443 matrix.Concat(*buffer.GetMatrix()); | 443 matrix.Concat(*buffer.GetMatrix()); |
| 444 GetScaledMatrix(matrix); | 444 GetScaledMatrix(matrix); |
| 445 CPDF_Dictionary* pFormResource = NULL; | 445 CPDF_Dictionary* pFormResource = NULL; |
| 446 if (pObj->m_Type == CPDF_PageObject::FORM) { | 446 if (pObj->m_Type == CPDF_PageObject::FORM) { |
| 447 CPDF_FormObject* pFormObj = (CPDF_FormObject*)pObj; | 447 CPDF_FormObject* pFormObj = (CPDF_FormObject*)pObj; |
| 448 if (pFormObj->m_pForm && pFormObj->m_pForm->m_pFormDict) { | 448 if (pFormObj->m_pForm && pFormObj->m_pForm->m_pFormDict) { |
| 449 pFormResource = pFormObj->m_pForm->m_pFormDict->GetDict("Resources"); | 449 pFormResource = pFormObj->m_pForm->m_pFormDict->GetDictBy("Resources"); |
| 450 } | 450 } |
| 451 } | 451 } |
| 452 CPDF_RenderStatus status; | 452 CPDF_RenderStatus status; |
| 453 status.Initialize(m_pContext, buffer.GetDevice(), buffer.GetMatrix(), NULL, | 453 status.Initialize(m_pContext, buffer.GetDevice(), buffer.GetMatrix(), NULL, |
| 454 NULL, NULL, &m_Options, m_Transparency, m_bDropObjects, | 454 NULL, NULL, &m_Options, m_Transparency, m_bDropObjects, |
| 455 pFormResource); | 455 pFormResource); |
| 456 status.RenderSingleObject(pObj, &matrix); | 456 status.RenderSingleObject(pObj, &matrix); |
| 457 buffer.OutputToDevice(); | 457 buffer.OutputToDevice(); |
| 458 } | 458 } |
| 459 FX_BOOL CPDF_RenderStatus::ProcessForm(CPDF_FormObject* pFormObj, | 459 FX_BOOL CPDF_RenderStatus::ProcessForm(CPDF_FormObject* pFormObj, |
| 460 const CFX_Matrix* pObj2Device) { | 460 const CFX_Matrix* pObj2Device) { |
| 461 CPDF_Dictionary* pOC = pFormObj->m_pForm->m_pFormDict->GetDict("OC"); | 461 CPDF_Dictionary* pOC = pFormObj->m_pForm->m_pFormDict->GetDictBy("OC"); |
| 462 if (pOC && m_Options.m_pOCContext && | 462 if (pOC && m_Options.m_pOCContext && |
| 463 !m_Options.m_pOCContext->CheckOCGVisible(pOC)) { | 463 !m_Options.m_pOCContext->CheckOCGVisible(pOC)) { |
| 464 return TRUE; | 464 return TRUE; |
| 465 } | 465 } |
| 466 CFX_Matrix matrix = pFormObj->m_FormMatrix; | 466 CFX_Matrix matrix = pFormObj->m_FormMatrix; |
| 467 matrix.Concat(*pObj2Device); | 467 matrix.Concat(*pObj2Device); |
| 468 CPDF_Dictionary* pResources = NULL; | 468 CPDF_Dictionary* pResources = NULL; |
| 469 if (pFormObj->m_pForm && pFormObj->m_pForm->m_pFormDict) { | 469 if (pFormObj->m_pForm && pFormObj->m_pForm->m_pFormDict) { |
| 470 pResources = pFormObj->m_pForm->m_pFormDict->GetDict("Resources"); | 470 pResources = pFormObj->m_pForm->m_pFormDict->GetDictBy("Resources"); |
| 471 } | 471 } |
| 472 CPDF_RenderStatus status; | 472 CPDF_RenderStatus status; |
| 473 status.Initialize(m_pContext, m_pDevice, NULL, m_pStopObj, this, pFormObj, | 473 status.Initialize(m_pContext, m_pDevice, NULL, m_pStopObj, this, pFormObj, |
| 474 &m_Options, m_Transparency, m_bDropObjects, pResources, | 474 &m_Options, m_Transparency, m_bDropObjects, pResources, |
| 475 FALSE); | 475 FALSE); |
| 476 status.m_curBlend = m_curBlend; | 476 status.m_curBlend = m_curBlend; |
| 477 m_pDevice->SaveState(); | 477 m_pDevice->SaveState(); |
| 478 status.RenderObjectList(pFormObj->m_pForm, &matrix); | 478 status.RenderObjectList(pFormObj->m_pForm, &matrix); |
| 479 m_bStopped = status.m_bStopped; | 479 m_bStopped = status.m_bStopped; |
| 480 m_pDevice->RestoreState(); | 480 m_pDevice->RestoreState(); |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 if (pPageObj->m_Type == CPDF_PageObject::FORM) { | 739 if (pPageObj->m_Type == CPDF_PageObject::FORM) { |
| 740 CPDF_FormObject* pFormObj = (CPDF_FormObject*)pPageObj; | 740 CPDF_FormObject* pFormObj = (CPDF_FormObject*)pPageObj; |
| 741 const CPDF_GeneralStateData* pStateData = | 741 const CPDF_GeneralStateData* pStateData = |
| 742 pFormObj->m_GeneralState.GetObject(); | 742 pFormObj->m_GeneralState.GetObject(); |
| 743 if (pStateData) { | 743 if (pStateData) { |
| 744 group_alpha = pStateData->m_FillAlpha; | 744 group_alpha = pStateData->m_FillAlpha; |
| 745 } | 745 } |
| 746 Transparency = pFormObj->m_pForm->m_Transparency; | 746 Transparency = pFormObj->m_pForm->m_Transparency; |
| 747 bGroupTransparent = !!(Transparency & PDFTRANS_ISOLATED); | 747 bGroupTransparent = !!(Transparency & PDFTRANS_ISOLATED); |
| 748 if (pFormObj->m_pForm->m_pFormDict) { | 748 if (pFormObj->m_pForm->m_pFormDict) { |
| 749 pFormResource = pFormObj->m_pForm->m_pFormDict->GetDict("Resources"); | 749 pFormResource = pFormObj->m_pForm->m_pFormDict->GetDictBy("Resources"); |
| 750 } | 750 } |
| 751 } | 751 } |
| 752 FX_BOOL bTextClip = FALSE; | 752 FX_BOOL bTextClip = FALSE; |
| 753 if (pPageObj->m_ClipPath.NotNull() && pPageObj->m_ClipPath.GetTextCount() && | 753 if (pPageObj->m_ClipPath.NotNull() && pPageObj->m_ClipPath.GetTextCount() && |
| 754 m_pDevice->GetDeviceClass() == FXDC_DISPLAY && | 754 m_pDevice->GetDeviceClass() == FXDC_DISPLAY && |
| 755 !(m_pDevice->GetDeviceCaps(FXDC_RENDER_CAPS) & FXRC_SOFT_CLIP)) { | 755 !(m_pDevice->GetDeviceCaps(FXDC_RENDER_CAPS) & FXRC_SOFT_CLIP)) { |
| 756 bTextClip = TRUE; | 756 bTextClip = TRUE; |
| 757 } | 757 } |
| 758 if ((m_Options.m_Flags & RENDER_OVERPRINT) && | 758 if ((m_Options.m_Flags & RENDER_OVERPRINT) && |
| 759 pPageObj->m_Type == CPDF_PageObject::IMAGE && pGeneralState && | 759 pPageObj->m_Type == CPDF_PageObject::IMAGE && pGeneralState && |
| (...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1398 item.GetParamType() == CPDF_ContentMarkItem::PropertiesDict) { | 1398 item.GetParamType() == CPDF_ContentMarkItem::PropertiesDict) { |
| 1399 CPDF_Dictionary* pOCG = | 1399 CPDF_Dictionary* pOCG = |
| 1400 ToDictionary(static_cast<CPDF_Object*>(item.GetParam())); | 1400 ToDictionary(static_cast<CPDF_Object*>(item.GetParam())); |
| 1401 if (!CheckOCGVisible(pOCG)) { | 1401 if (!CheckOCGVisible(pOCG)) { |
| 1402 return FALSE; | 1402 return FALSE; |
| 1403 } | 1403 } |
| 1404 } | 1404 } |
| 1405 } | 1405 } |
| 1406 return TRUE; | 1406 return TRUE; |
| 1407 } | 1407 } |
| OLD | NEW |