| // 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 |