Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cpdf_progressiverenderer.h
Go to the documentation of this file.
1// Copyright 2016 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef CORE_FPDFAPI_RENDER_CPDF_PROGRESSIVERENDERER_H_
8#define CORE_FPDFAPI_RENDER_CPDF_PROGRESSIVERENDERER_H_
9
10#include <stdint.h>
11
12#include <memory>
13
14#include "core/fpdfapi/page/cpdf_pageobjectholder.h"
15#include "core/fpdfapi/render/cpdf_rendercontext.h"
16#include "core/fxcrt/fx_coordinates.h"
17#include "core/fxcrt/unowned_ptr.h"
18
23
25 public:
26 // Must match FDF_RENDER_* definitions in public/fpdf_progressive.h, but
27 // cannot #include that header. fpdfsdk/fpdf_progressive.cpp has
28 // static_asserts to make sure the two sets of values match.
29 enum Status {
30 kReady, // FPDF_RENDER_READY
31 kToBeContinued, // FPDF_RENDER_TOBECONTINUED
32 kDone, // FPDF_RENDER_DONE
33 kFailed // FPDF_RENDER_FAILED
34 };
35
37 CFX_RenderDevice* pDevice,
38 const CPDF_RenderOptions* pOptions);
40
41 Status GetStatus() const { return m_Status; }
42 void Start(PauseIndicatorIface* pPause);
43 void Continue(PauseIndicatorIface* pPause);
44
45 private:
46 // Maximum page objects to render before checking for pause.
47 static constexpr int kStepLimit = 100;
48
49 Status m_Status = kReady;
50 UnownedPtr<CPDF_RenderContext> const m_pContext;
51 UnownedPtr<CFX_RenderDevice> const m_pDevice;
52 UnownedPtr<const CPDF_RenderOptions> const m_pOptions;
53 std::unique_ptr<CPDF_RenderStatus> m_pRenderStatus;
54 CFX_FloatRect m_ClipRect;
55 uint32_t m_LayerIndex = 0;
56 UnownedPtr<CPDF_RenderContext::Layer> m_pCurrentLayer;
57 CPDF_PageObjectHolder::const_iterator m_LastObjectRendered;
58};
59
60#endif // CORE_FPDFAPI_RENDER_CPDF_PROGRESSIVERENDERER_H_
std::unique_ptr< CPDF_RenderContext > m_pContext
std::unique_ptr< CPDF_RenderOptions > m_pOptions
std::unique_ptr< AnnotListIface > m_pAnnots
~CPDF_PageRenderContext() override
std::unique_ptr< CFX_RenderDevice > m_pDevice
std::unique_ptr< CPDF_ProgressiveRenderer > m_pRenderer
void Start(PauseIndicatorIface *pPause)
void Continue(PauseIndicatorIface *pPause)
CPDF_ProgressiveRenderer(CPDF_RenderContext *pContext, CFX_RenderDevice *pDevice, const CPDF_RenderOptions *pOptions)