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 _FDE_RENDERCONTEXT
8#define _FDE_RENDERCONTEXT
9class IFDE_Page;
10class IFDE_RenderDevice;
11
12void FDE_GetPageMatrix(CFX_Matrix& pageMatrix,
13                       const CFX_RectF& docPageRect,
14                       const CFX_Rect& devicePageRect,
15                       int32_t iRotate,
16                       FX_DWORD dwCoordinatesType = 0);
17enum FDE_RENDERSTATUS {
18  FDE_RENDERSTATUS_Reset = 0,
19  FDE_RENDERSTATUS_Paused,
20  FDE_RENDERSTATUS_Done,
21  FDE_RENDERSTATUS_Failed,
22};
23
24class IFDE_RenderContext {
25 public:
26  static IFDE_RenderContext* Create();
27  virtual ~IFDE_RenderContext() {}
28  virtual void Release() = 0;
29  virtual FX_BOOL StartRender(IFDE_RenderDevice* pRenderDevice,
30                              IFDE_CanvasSet* pCanvasSet,
31                              const CFX_Matrix& tmDoc2Device) = 0;
32  virtual FDE_RENDERSTATUS GetStatus() const = 0;
33  virtual FDE_RENDERSTATUS DoRender(IFX_Pause* pPause = NULL) = 0;
34  virtual void StopRender() = 0;
35};
36#endif
37