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