blob: f984a64583f29cfd2f1841ed094b14ea6127fb10 [file] [log] [blame]
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07001// 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.
Lei Zhanga6d9f0e2015-06-13 00:48:38 -07004
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07005// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
Tom Sepez19922bb2015-05-28 13:23:12 -07007#ifndef FPDFSDK_INCLUDE_FSDK_RENDERCONTEXT_H_
8#define FPDFSDK_INCLUDE_FSDK_RENDERCONTEXT_H_
Tom Sepez1ed8a212015-05-11 15:25:39 -07009
Dan Sinclairaa403d32016-03-15 14:57:22 -040010#include "core/fpdfapi/fpdf_render/include/cpdf_progressiverenderer.h"
Dan Sinclairefbc1912016-02-17 16:54:43 -050011#include "fpdfsdk/include/fsdk_define.h"
Lei Zhangb4e7f302015-11-06 15:52:32 -080012#include "public/fpdf_progressive.h"
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070013
14// Everything about rendering is put here: for OOM recovery
Nico Weber9d8ec5a2015-08-04 13:00:21 -070015class CRenderContext {
16 public:
17 CRenderContext() { Clear(); }
18 ~CRenderContext();
Lei Zhanga6d9f0e2015-06-13 00:48:38 -070019
Nico Weber9d8ec5a2015-08-04 13:00:21 -070020 void Clear();
Lei Zhanga6d9f0e2015-06-13 00:48:38 -070021
Nico Weber9d8ec5a2015-08-04 13:00:21 -070022 CFX_RenderDevice* m_pDevice;
23 CPDF_RenderContext* m_pContext;
24 CPDF_ProgressiveRenderer* m_pRenderer;
25 CPDF_AnnotList* m_pAnnots;
26 CPDF_RenderOptions* m_pOptions;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070027#ifdef _WIN32_WCE
Nico Weber9d8ec5a2015-08-04 13:00:21 -070028 CFX_DIBitmap* m_pBitmap;
29 HBITMAP m_hBitmap;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070030#endif
31};
32
Nico Weber9d8ec5a2015-08-04 13:00:21 -070033class IFSDK_PAUSE_Adapter : public IFX_Pause {
34 public:
Lei Zhang2b1a2d52015-08-14 22:16:22 -070035 explicit IFSDK_PAUSE_Adapter(IFSDK_PAUSE* IPause);
36 ~IFSDK_PAUSE_Adapter() override;
37
38 FX_BOOL NeedToPauseNow() override;
Lei Zhanga6d9f0e2015-06-13 00:48:38 -070039
Nico Weber9d8ec5a2015-08-04 13:00:21 -070040 private:
41 IFSDK_PAUSE* m_IPause;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070042};
Tom Sepez04db6532015-05-27 16:24:18 -070043
Tom Sepez19922bb2015-05-28 13:23:12 -070044#endif // FPDFSDK_INCLUDE_FSDK_RENDERCONTEXT_H_