diff options
Diffstat (limited to 'core/fpdfapi/render/render_int.h')
-rw-r--r-- | core/fpdfapi/render/render_int.h | 155 |
1 files changed, 1 insertions, 154 deletions
diff --git a/core/fpdfapi/render/render_int.h b/core/fpdfapi/render/render_int.h index a8c8a580de..4e45597693 100644 --- a/core/fpdfapi/render/render_int.h +++ b/core/fpdfapi/render/render_int.h @@ -15,6 +15,7 @@ #include "core/fpdfapi/page/cpdf_countedobject.h" #include "core/fpdfapi/page/cpdf_graphicstates.h" #include "core/fpdfapi/parser/cpdf_stream_acc.h" +#include "core/fpdfapi/render/cpdf_rendercontext.h" #include "core/fpdfapi/render/cpdf_renderoptions.h" #include "core/fxge/cfx_fxgedevice.h" #include "core/fxge/cfx_renderdevice.h" @@ -63,160 +64,6 @@ class CPDF_TransferFunc { uint8_t m_Samples[256 * 3]; }; -class CPDF_RenderStatus { - public: - CPDF_RenderStatus(); - ~CPDF_RenderStatus(); - - bool Initialize(class CPDF_RenderContext* pContext, - CFX_RenderDevice* pDevice, - const CFX_Matrix* pDeviceMatrix, - const CPDF_PageObject* pStopObj, - const CPDF_RenderStatus* pParentStatus, - const CPDF_GraphicStates* pInitialStates, - const CPDF_RenderOptions* pOptions, - int transparency, - bool bDropObjects, - CPDF_Dictionary* pFormResource = nullptr, - bool bStdCS = false, - CPDF_Type3Char* pType3Char = nullptr, - FX_ARGB fill_color = 0, - uint32_t GroupFamily = 0, - bool bLoadMask = false); - void RenderObjectList(const CPDF_PageObjectHolder* pObjectHolder, - const CFX_Matrix* pObj2Device); - void RenderSingleObject(CPDF_PageObject* pObj, const CFX_Matrix* pObj2Device); - bool ContinueSingleObject(CPDF_PageObject* pObj, - const CFX_Matrix* pObj2Device, - IFX_Pause* pPause); - CPDF_RenderContext* GetContext() { return m_pContext; } - -#if defined _SKIA_SUPPORT_ - void DebugVerifyDeviceIsPreMultiplied() const; -#endif - - CPDF_RenderOptions m_Options; - CPDF_Dictionary* m_pFormResource; - CPDF_Dictionary* m_pPageResource; - CFX_ArrayTemplate<CPDF_Type3Font*> m_Type3FontCache; - - protected: - friend class CPDF_ImageRenderer; - friend class CPDF_RenderContext; - - void ProcessClipPath(CPDF_ClipPath ClipPath, const CFX_Matrix* pObj2Device); - void DrawClipPath(CPDF_ClipPath ClipPath, const CFX_Matrix* pObj2Device); - bool ProcessTransparency(CPDF_PageObject* PageObj, - const CFX_Matrix* pObj2Device); - void ProcessObjectNoClip(CPDF_PageObject* PageObj, - const CFX_Matrix* pObj2Device); - void DrawObjWithBackground(CPDF_PageObject* pObj, - const CFX_Matrix* pObj2Device); - bool DrawObjWithBlend(CPDF_PageObject* pObj, const CFX_Matrix* pObj2Device); - bool ProcessPath(CPDF_PathObject* pPathObj, const CFX_Matrix* pObj2Device); - void ProcessPathPattern(CPDF_PathObject* pPathObj, - const CFX_Matrix* pObj2Device, - int& filltype, - bool& bStroke); - void DrawPathWithPattern(CPDF_PathObject* pPathObj, - const CFX_Matrix* pObj2Device, - const CPDF_Color* pColor, - bool bStroke); - void DrawTilingPattern(CPDF_TilingPattern* pPattern, - CPDF_PageObject* pPageObj, - const CFX_Matrix* pObj2Device, - bool bStroke); - void DrawShadingPattern(CPDF_ShadingPattern* pPattern, - const CPDF_PageObject* pPageObj, - const CFX_Matrix* pObj2Device, - bool bStroke); - bool SelectClipPath(const CPDF_PathObject* pPathObj, - const CFX_Matrix* pObj2Device, - bool bStroke); - bool ProcessImage(CPDF_ImageObject* pImageObj, const CFX_Matrix* pObj2Device); - bool OutputBitmapAlpha(CPDF_ImageObject* pImageObj, - const CFX_Matrix* pImage2Device); - bool OutputImage(CPDF_ImageObject* pImageObj, - const CFX_Matrix* pImage2Device); - bool OutputDIBSource(const CFX_DIBSource* pOutputBitmap, - FX_ARGB fill_argb, - int bitmap_alpha, - const CFX_Matrix* pImage2Device, - CPDF_ImageCacheEntry* pImageCache, - uint32_t flags); - void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, - int left, - int top, - FX_ARGB mask_argb, - int bitmap_alpha, - int blend_mode, - int bIsolated); - void ProcessShading(const CPDF_ShadingObject* pShadingObj, - const CFX_Matrix* pObj2Device); - void DrawShading(CPDF_ShadingPattern* pPattern, - CFX_Matrix* pMatrix, - FX_RECT& clip_rect, - int alpha, - bool bAlphaMode); - bool ProcessType3Text(CPDF_TextObject* textobj, - const CFX_Matrix* pObj2Device); - bool ProcessText(CPDF_TextObject* textobj, - const CFX_Matrix* pObj2Device, - CFX_PathData* pClippingPath); - void DrawTextPathWithPattern(const CPDF_TextObject* textobj, - const CFX_Matrix* pObj2Device, - CPDF_Font* pFont, - FX_FLOAT font_size, - const CFX_Matrix* pTextMatrix, - bool bFill, - bool bStroke); - bool ProcessForm(const CPDF_FormObject* pFormObj, - const CFX_Matrix* pObj2Device); - CFX_DIBitmap* GetBackdrop(const CPDF_PageObject* pObj, - const FX_RECT& rect, - int& left, - int& top, - bool bBackAlphaRequired); - CFX_DIBitmap* LoadSMask(CPDF_Dictionary* pSMaskDict, - FX_RECT* pClipRect, - const CFX_Matrix* pMatrix); - void Init(CPDF_RenderContext* pParent); - static class CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); - static CPDF_GraphicStates* CloneObjStates(const CPDF_GraphicStates* pPathObj, - bool bStroke); - CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObject) const; - FX_ARGB GetFillArgb(CPDF_PageObject* pObj, bool bType3 = false) const; - FX_ARGB GetStrokeArgb(CPDF_PageObject* pObj) const; - bool GetObjectClippedRect(const CPDF_PageObject* pObj, - const CFX_Matrix* pObj2Device, - bool bLogical, - FX_RECT& rect) const; - void GetScaledMatrix(CFX_Matrix& matrix) const; - - static const int kRenderMaxRecursionDepth = 64; - static int s_CurrentRecursionDepth; - - CPDF_RenderContext* m_pContext; - bool m_bStopped; - CFX_RenderDevice* m_pDevice; - CFX_Matrix m_DeviceMatrix; - CPDF_ClipPath m_LastClipPath; - const CPDF_PageObject* m_pCurObj; - const CPDF_PageObject* m_pStopObj; - CPDF_GraphicStates m_InitialStates; - int m_HalftoneLimit; - std::unique_ptr<CPDF_ImageRenderer> m_pImageRenderer; - bool m_bPrint; - int m_Transparency; - bool m_bDropObjects; - bool m_bStdCS; - uint32_t m_GroupFamily; - bool m_bLoadMask; - CPDF_Type3Char* m_pType3Char; - FX_ARGB m_T3FillColor; - int m_curBlend; -}; - class CPDF_ImageLoader { public: CPDF_ImageLoader() |