OLD | NEW |
1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 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/render/cpdf_progressiverenderer.h" | 7 #include "core/fpdfapi/render/cpdf_progressiverenderer.h" |
8 | 8 |
9 #include "core/fpdfapi/page/cpdf_pageobject.h" | 9 #include "core/fpdfapi/page/cpdf_pageobject.h" |
10 #include "core/fpdfapi/page/cpdf_pageobjectholder.h" | 10 #include "core/fpdfapi/page/cpdf_pageobjectholder.h" |
11 #include "core/fpdfapi/render/cpdf_pagerendercache.h" | 11 #include "core/fpdfapi/render/cpdf_pagerendercache.h" |
12 #include "core/fpdfapi/render/cpdf_renderoptions.h" | 12 #include "core/fpdfapi/render/cpdf_renderoptions.h" |
13 #include "core/fpdfapi/render/cpdf_renderstatus.h" | 13 #include "core/fpdfapi/render/cpdf_renderstatus.h" |
14 #include "core/fxge/cfx_renderdevice.h" | 14 #include "core/fxge/cfx_renderdevice.h" |
| 15 #include "third_party/base/ptr_util.h" |
15 | 16 |
16 CPDF_ProgressiveRenderer::CPDF_ProgressiveRenderer( | 17 CPDF_ProgressiveRenderer::CPDF_ProgressiveRenderer( |
17 CPDF_RenderContext* pContext, | 18 CPDF_RenderContext* pContext, |
18 CFX_RenderDevice* pDevice, | 19 CFX_RenderDevice* pDevice, |
19 const CPDF_RenderOptions* pOptions) | 20 const CPDF_RenderOptions* pOptions) |
20 : m_Status(Ready), | 21 : m_Status(Ready), |
21 m_pContext(pContext), | 22 m_pContext(pContext), |
22 m_pDevice(pDevice), | 23 m_pDevice(pDevice), |
23 m_pOptions(pOptions), | 24 m_pOptions(pOptions), |
24 m_LayerIndex(0), | 25 m_LayerIndex(0), |
(...skipping 16 matching lines...) Expand all Loading... |
41 void CPDF_ProgressiveRenderer::Continue(IFX_Pause* pPause) { | 42 void CPDF_ProgressiveRenderer::Continue(IFX_Pause* pPause) { |
42 while (m_Status == ToBeContinued) { | 43 while (m_Status == ToBeContinued) { |
43 if (!m_pCurrentLayer) { | 44 if (!m_pCurrentLayer) { |
44 if (m_LayerIndex >= m_pContext->CountLayers()) { | 45 if (m_LayerIndex >= m_pContext->CountLayers()) { |
45 m_Status = Done; | 46 m_Status = Done; |
46 return; | 47 return; |
47 } | 48 } |
48 m_pCurrentLayer = m_pContext->GetLayer(m_LayerIndex); | 49 m_pCurrentLayer = m_pContext->GetLayer(m_LayerIndex); |
49 m_LastObjectRendered = | 50 m_LastObjectRendered = |
50 m_pCurrentLayer->m_pObjectHolder->GetPageObjectList()->end(); | 51 m_pCurrentLayer->m_pObjectHolder->GetPageObjectList()->end(); |
51 m_pRenderStatus.reset(new CPDF_RenderStatus()); | 52 m_pRenderStatus = pdfium::MakeUnique<CPDF_RenderStatus>(); |
52 m_pRenderStatus->Initialize( | 53 m_pRenderStatus->Initialize( |
53 m_pContext, m_pDevice, nullptr, nullptr, nullptr, nullptr, m_pOptions, | 54 m_pContext, m_pDevice, nullptr, nullptr, nullptr, nullptr, m_pOptions, |
54 m_pCurrentLayer->m_pObjectHolder->m_Transparency, false, nullptr); | 55 m_pCurrentLayer->m_pObjectHolder->m_Transparency, false, nullptr); |
55 m_pDevice->SaveState(); | 56 m_pDevice->SaveState(); |
56 m_ClipRect = CFX_FloatRect(m_pDevice->GetClipBox()); | 57 m_ClipRect = CFX_FloatRect(m_pDevice->GetClipBox()); |
57 CFX_Matrix device2object; | 58 CFX_Matrix device2object; |
58 device2object.SetReverse(m_pCurrentLayer->m_Matrix); | 59 device2object.SetReverse(m_pCurrentLayer->m_Matrix); |
59 device2object.TransformRect(m_ClipRect); | 60 device2object.TransformRect(m_ClipRect); |
60 } | 61 } |
61 CPDF_PageObjectList::iterator iter; | 62 CPDF_PageObjectList::iterator iter; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 if (pPause && pPause->NeedToPauseNow()) { | 105 if (pPause && pPause->NeedToPauseNow()) { |
105 return; | 106 return; |
106 } | 107 } |
107 } else { | 108 } else { |
108 m_pCurrentLayer->m_pObjectHolder->ContinueParse(pPause); | 109 m_pCurrentLayer->m_pObjectHolder->ContinueParse(pPause); |
109 if (!m_pCurrentLayer->m_pObjectHolder->IsParsed()) | 110 if (!m_pCurrentLayer->m_pObjectHolder->IsParsed()) |
110 return; | 111 return; |
111 } | 112 } |
112 } | 113 } |
113 } | 114 } |
OLD | NEW |