// 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() { FDE_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; FX_INT32 m_iCharPosCount; IFDE_VisualSetIterator *m_pIterator; }; #endif