diff options
author | Tom Sepez <tsepez@chromium.org> | 2016-02-16 09:17:44 -0800 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2016-02-16 09:17:44 -0800 |
commit | e6a5138ec89a1235bf426fd19a0e4f61dfeafca0 (patch) | |
tree | 31594d3399ae18c8299069e8fdce2d34a13ac560 /core/include/fpdfapi/fpdf_render.h | |
parent | 42a1bc02c0810c039afbcb62170c326f0e717320 (diff) | |
download | pdfium-e6a5138ec89a1235bf426fd19a0e4f61dfeafca0.tar.xz |
Rework progressive render loop.
Migrating this off of CFX_PrtList depends on first making
this saner. The tricky part is checking whether new
objects have been added to a partially-parsed layer. The
old code used to do this by keeping track of the last
element in the list, and seeing if it changes. It's far
simpler to keep track of the last element processed, and
just keep looking for more objects after it with each pass.
Fold together some duplicated blocks along the way.
Remove unused EstimateProgress() method.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1699443002 .
Diffstat (limited to 'core/include/fpdfapi/fpdf_render.h')
-rw-r--r-- | core/include/fpdfapi/fpdf_render.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/core/include/fpdfapi/fpdf_render.h b/core/include/fpdfapi/fpdf_render.h index 2637dd3252..ec5d151914 100644 --- a/core/include/fpdfapi/fpdf_render.h +++ b/core/include/fpdfapi/fpdf_render.h @@ -136,11 +136,13 @@ class CPDF_ProgressiveRenderer { Status GetStatus() const { return m_Status; } void Start(IFX_Pause* pPause); void Continue(IFX_Pause* pPause); - int EstimateProgress(); private: void RenderStep(); + // Maximum page objects to render before checking for pause. + static const int kStepLimit = 100; + Status m_Status; CPDF_RenderContext* const m_pContext; CFX_RenderDevice* const m_pDevice; @@ -148,9 +150,8 @@ class CPDF_ProgressiveRenderer { std::unique_ptr<CPDF_RenderStatus> m_pRenderStatus; CFX_FloatRect m_ClipRect; FX_DWORD m_LayerIndex; - FX_DWORD m_ObjectIndex; - FX_POSITION m_ObjectPos; - FX_POSITION m_PrevLastPos; + CPDF_RenderContext::Layer* m_pCurrentLayer; + FX_POSITION m_LastObjectRendered; }; class CPDF_TextRenderer { @@ -261,13 +262,6 @@ class CPDF_PageRenderCache { FX_DWORD m_nCacheSize; FX_BOOL m_bCurFindCache; }; -class CPDF_RenderConfig { - public: - CPDF_RenderConfig(); - ~CPDF_RenderConfig(); - int m_HalftoneLimit; - int m_RenderStepLimit; -}; FX_BOOL IsAvailableMatrix(const CFX_Matrix& matrix); |