// Copyright 2014 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef _FDE_RENDER_IMP #define _FDE_RENDER_IMP class CFDE_RenderContext; class CFDE_RenderContext : public IFDE_RenderContext, public CFX_ThreadLock, public CFX_Target { public: CFDE_RenderContext(); virtual ~CFDE_RenderContext(); virtual void Release() { delete this; } virtual FX_BOOL StartRender(IFDE_RenderDevice* pRenderDevice, IFDE_CanvasSet* pCanvasSet, const CFX_Matrix& tmDoc2Device); virtual FDE_RENDERSTATUS GetStatus() const { return m_eStatus; } virtual FDE_RENDERSTATUS DoRender(IFX_Pause* pPause = NULL); virtual void StopRender(); void RenderPath(IFDE_PathSet* pPathSet, FDE_HVISUALOBJ hPath); void RenderText(IFDE_TextSet* pTextSet, FDE_HVISUALOBJ hText); FX_BOOL ApplyClip(IFDE_VisualSet* pVisualSet, FDE_HVISUALOBJ hObj, FDE_HDEVICESTATE& hState); void RestoreClip(FDE_HDEVICESTATE hState); protected: FDE_RENDERSTATUS m_eStatus; IFDE_RenderDevice* m_pRenderDevice; IFDE_SolidBrush* m_pSolidBrush; CFX_Matrix m_Transform; FXTEXT_CHARPOS* m_pCharPos; int32_t m_iCharPosCount; IFDE_VisualSetIterator* m_pIterator; }; #endif