diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-07-17 10:29:25 -0700 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-07-17 10:29:25 -0700 |
commit | 1ccb793f6bcf14c03cb817d0465584c81e1841f8 (patch) | |
tree | 1ded3d9ed73e186c2db17c3d3e680a31c5727d4e /core/include/fpdfapi | |
parent | 21bf242a31eff79f754c5e9c3b41c52e33483bb0 (diff) | |
download | pdfium-1ccb793f6bcf14c03cb817d0465584c81e1841f8.tar.xz |
Refactor progressive renderer class.chromium/2467chromium/2466chromium/2465chromium/2464chromium/2463chromium/2462chromium/2461
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1233453014 .
Diffstat (limited to 'core/include/fpdfapi')
-rw-r--r-- | core/include/fpdfapi/fpdf_render.h | 105 |
1 files changed, 45 insertions, 60 deletions
diff --git a/core/include/fpdfapi/fpdf_render.h b/core/include/fpdfapi/fpdf_render.h index c0792cfc35..f3590095ad 100644 --- a/core/include/fpdfapi/fpdf_render.h +++ b/core/include/fpdfapi/fpdf_render.h @@ -7,22 +7,26 @@ #ifndef CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ #define CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ +#include "../../../third_party/base/nonstd_unique_ptr.h" +#include "../../../public/fpdf_progressive.h" #include "../fxge/fx_ge.h" #include "fpdf_page.h" -class CPDF_RenderContext; -class CPDF_RenderOptions; -class CPDF_ImageCache; -class IPDF_OCContext; -class CPDF_QuickStretcher; -class CFX_PathData; class CFX_GraphStateData; +class CFX_PathData; class CFX_RenderDevice; -class CPDF_TextObject; -class CPDF_PathObject; +class CPDF_FormObject; +class CPDF_ImageCache; class CPDF_ImageObject; +class CPDF_PathObject; +class CPDF_QuickStretcher; +class CPDF_RenderContext; +class CPDF_RenderOptions; +class CPDF_RenderStatus; class CPDF_ShadingObject; -class CPDF_FormObject; +class CPDF_TextObject; +class IFX_Pause; + class IPDF_OCContext { public: @@ -129,63 +133,44 @@ protected: friend class CPDF_RenderStatus; friend class CPDF_ProgressiveRenderer; }; + class CPDF_ProgressiveRenderer { public: - - CPDF_ProgressiveRenderer(); - + // Must match FDF_RENDER_* definitions in fpdf_progressive.h. + enum Status { + Ready = FPDF_RENDER_READER, + ToBeContinued = FPDF_RENDER_TOBECOUNTINUED, + Done = FPDF_RENDER_DONE, + Failed = FPDF_RENDER_FAILED + }; + static int ToFPDFStatus(Status status) { return static_cast<int>(status); } + + CPDF_ProgressiveRenderer(CPDF_RenderContext* pContext, + CFX_RenderDevice* pDevice, + const CPDF_RenderOptions* pOptions); ~CPDF_ProgressiveRenderer(); - typedef enum { - Ready, - ToBeContinued, - Done, - Failed - } RenderStatus; - - RenderStatus GetStatus() - { - return m_Status; - } - - - - void Start(CPDF_RenderContext* pContext, CFX_RenderDevice* pDevice, - const CPDF_RenderOptions* pOptions, class IFX_Pause* pPause, FX_BOOL bDropObjects = FALSE); - - void Continue(class IFX_Pause* pPause); - - - int EstimateProgress(); - - void Clear(); -protected: - - RenderStatus m_Status; - - CPDF_RenderContext* m_pContext; - - CFX_RenderDevice* m_pDevice; - - const CPDF_RenderOptions* m_pOptions; - - FX_BOOL m_bDropObjects; - - class CPDF_RenderStatus* m_pRenderer; - - CFX_FloatRect m_ClipRect; - - FX_DWORD m_LayerIndex; - - FX_DWORD m_ObjectIndex; - - FX_POSITION m_ObjectPos; - - FX_POSITION m_PrevLastPos; - - void RenderStep(); + Status GetStatus() const { return m_Status; } + void Start(IFX_Pause* pPause); + void Continue(IFX_Pause* pPause); + int EstimateProgress(); + +private: + void RenderStep(); + + Status m_Status; + CPDF_RenderContext* const m_pContext; + CFX_RenderDevice* const m_pDevice; + const CPDF_RenderOptions* const m_pOptions; + nonstd::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; }; + class CPDF_TextRenderer { public: |