1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved.
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file.
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _RENDERCONTENT_H_
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _RENDERCONTENT_H_
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../include/fsdk_define.h"
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../include/fpdf_progressive.h"
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Everything about rendering is put here: for OOM recovery
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CRenderContext : public CFX_Object
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CRenderContext() { Clear(); }
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	~CRenderContext();
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	void Clear();
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CFX_RenderDevice*		m_pDevice;
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CPDF_RenderContext*		m_pContext;
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CPDF_ProgressiveRenderer*	m_pRenderer;
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CPDF_AnnotList*			m_pAnnots;
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CPDF_RenderOptions*		m_pOptions;
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef _WIN32_WCE
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	CFX_DIBitmap*	m_pBitmap;
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	HBITMAP			m_hBitmap;
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass IFSDK_PAUSE_Adapter : public IFX_Pause
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic:
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	IFSDK_PAUSE_Adapter(IFSDK_PAUSE* IPause );
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	FX_BOOL NeedToPauseNow();
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprivate:
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	IFSDK_PAUSE* m_IPause;
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov};
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif
42