• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 PDFium Authors. All rights reserved.
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 XFA_FXFA_XFA_RENDERCONTEXT_H_
8 #define XFA_FXFA_XFA_RENDERCONTEXT_H_
9 
10 #include <memory>
11 
12 #include "xfa/fxfa/fxfa.h"
13 
14 class CXFA_RenderOptions {
15  public:
CXFA_RenderOptions()16   CXFA_RenderOptions() : m_bPrint(false), m_bHighlight(true) {}
17 
18   bool m_bPrint;
19   bool m_bHighlight;
20 };
21 
22 class CXFA_RenderContext {
23  public:
24   CXFA_RenderContext();
25   ~CXFA_RenderContext();
26 
27   int32_t StartRender(CXFA_FFPageView* pPageView,
28                       CFX_Graphics* pGS,
29                       const CFX_Matrix& matrix,
30                       const CXFA_RenderOptions& options);
31   int32_t DoRender(IFX_Pause* pPause = nullptr);
32   void StopRender();
33 
34  protected:
35   std::unique_ptr<IXFA_WidgetIterator> m_pWidgetIterator;
36   CXFA_FFWidget* m_pWidget;
37   CXFA_FFPageView* m_pPageView;
38   CFX_Graphics* m_pGS;
39   CFX_Matrix m_matrix;
40   CXFA_RenderOptions m_options;
41   uint32_t m_dwStatus;
42   CFX_RectF m_rtClipRect;
43 };
44 
45 #endif  // XFA_FXFA_XFA_RENDERCONTEXT_H_
46