| Index: core/src/fpdfapi/fpdf_render/render_int.h
|
| diff --git a/core/src/fpdfapi/fpdf_render/render_int.h b/core/src/fpdfapi/fpdf_render/render_int.h
|
| index e5fb831a63114aa4533355643391f09aeebe63ce..d6b314d853dae178c20bfffde75646317843a3f1 100644
|
| --- a/core/src/fpdfapi/fpdf_render/render_int.h
|
| +++ b/core/src/fpdfapi/fpdf_render/render_int.h
|
| @@ -13,463 +13,582 @@
|
| #include "../../../include/fpdfapi/fpdf_pageobj.h"
|
|
|
| class CPDF_QuickStretcher;
|
| -#define TYPE3_MAX_BLUES 16
|
| -class CPDF_Type3Glyphs
|
| -{
|
| -public:
|
| - CPDF_Type3Glyphs()
|
| - {
|
| - m_GlyphMap.InitHashTable(253);
|
| - m_TopBlueCount = m_BottomBlueCount = 0;
|
| - }
|
| - ~CPDF_Type3Glyphs();
|
| - CFX_MapPtrToPtr m_GlyphMap;
|
| - void AdjustBlue(FX_FLOAT top, FX_FLOAT bottom, int& top_line, int& bottom_line);
|
| +#define TYPE3_MAX_BLUES 16
|
| +class CPDF_Type3Glyphs {
|
| + public:
|
| + CPDF_Type3Glyphs() {
|
| + m_GlyphMap.InitHashTable(253);
|
| + m_TopBlueCount = m_BottomBlueCount = 0;
|
| + }
|
| + ~CPDF_Type3Glyphs();
|
| + CFX_MapPtrToPtr m_GlyphMap;
|
| + void AdjustBlue(FX_FLOAT top,
|
| + FX_FLOAT bottom,
|
| + int& top_line,
|
| + int& bottom_line);
|
|
|
| - int m_TopBlue[TYPE3_MAX_BLUES], m_BottomBlue[TYPE3_MAX_BLUES];
|
| - int m_TopBlueCount, m_BottomBlueCount;
|
| + int m_TopBlue[TYPE3_MAX_BLUES], m_BottomBlue[TYPE3_MAX_BLUES];
|
| + int m_TopBlueCount, m_BottomBlueCount;
|
| };
|
| class CFX_GlyphBitmap;
|
| -class CPDF_Type3Cache
|
| -{
|
| -public:
|
| - CPDF_Type3Cache(CPDF_Type3Font* pFont)
|
| - {
|
| - m_pFont = pFont;
|
| - }
|
| - ~CPDF_Type3Cache();
|
| - CFX_GlyphBitmap* LoadGlyph(FX_DWORD charcode, const CFX_AffineMatrix* pMatrix, FX_FLOAT retinaScaleX = 1.0f, FX_FLOAT retinaScaleY = 1.0f);
|
| -protected:
|
| - CFX_GlyphBitmap* RenderGlyph(CPDF_Type3Glyphs* pSize, FX_DWORD charcode, const CFX_AffineMatrix* pMatrix, FX_FLOAT retinaScaleX = 1.0f, FX_FLOAT retinaScaleY = 1.0f);
|
| - CPDF_Type3Font* m_pFont;
|
| - CFX_MapByteStringToPtr m_SizeMap;
|
| +class CPDF_Type3Cache {
|
| + public:
|
| + CPDF_Type3Cache(CPDF_Type3Font* pFont) { m_pFont = pFont; }
|
| + ~CPDF_Type3Cache();
|
| + CFX_GlyphBitmap* LoadGlyph(FX_DWORD charcode,
|
| + const CFX_AffineMatrix* pMatrix,
|
| + FX_FLOAT retinaScaleX = 1.0f,
|
| + FX_FLOAT retinaScaleY = 1.0f);
|
| +
|
| + protected:
|
| + CFX_GlyphBitmap* RenderGlyph(CPDF_Type3Glyphs* pSize,
|
| + FX_DWORD charcode,
|
| + const CFX_AffineMatrix* pMatrix,
|
| + FX_FLOAT retinaScaleX = 1.0f,
|
| + FX_FLOAT retinaScaleY = 1.0f);
|
| + CPDF_Type3Font* m_pFont;
|
| + CFX_MapByteStringToPtr m_SizeMap;
|
| };
|
| -class CPDF_TransferFunc
|
| -{
|
| -public:
|
| - CPDF_Document* m_pPDFDoc;
|
| - uint8_t m_Samples[256 * 3];
|
| - FX_BOOL m_bIdentity;
|
| +class CPDF_TransferFunc {
|
| + public:
|
| + CPDF_Document* m_pPDFDoc;
|
| + uint8_t m_Samples[256 * 3];
|
| + FX_BOOL m_bIdentity;
|
|
|
| - CFX_DIBSource* TranslateImage(const CFX_DIBSource* pSrc, FX_BOOL bAutoDropSrc);
|
| - FX_COLORREF TranslateColor(FX_COLORREF src);
|
| + CFX_DIBSource* TranslateImage(const CFX_DIBSource* pSrc,
|
| + FX_BOOL bAutoDropSrc);
|
| + FX_COLORREF TranslateColor(FX_COLORREF src);
|
| };
|
|
|
| -class CPDF_DocRenderData
|
| -{
|
| -public:
|
| - CPDF_DocRenderData(CPDF_Document* pPDFDoc = NULL);
|
| - ~CPDF_DocRenderData();
|
| - CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont);
|
| - CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObj);
|
| - CFX_FontCache* GetFontCache()
|
| - {
|
| - return m_pFontCache;
|
| - }
|
| - void Clear(FX_BOOL bRelease = FALSE);
|
| - void ReleaseCachedType3(CPDF_Type3Font* pFont);
|
| - void ReleaseTransferFunc(CPDF_Object* pObj);
|
| -private:
|
| - using CPDF_Type3CacheMap =
|
| - std::map<CPDF_Font*, CPDF_CountedObject<CPDF_Type3Cache>*>;
|
| - using CPDF_TransferFuncMap =
|
| - std::map<CPDF_Object*, CPDF_CountedObject<CPDF_TransferFunc>*> ;
|
| +class CPDF_DocRenderData {
|
| + public:
|
| + CPDF_DocRenderData(CPDF_Document* pPDFDoc = NULL);
|
| + ~CPDF_DocRenderData();
|
| + CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont);
|
| + CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObj);
|
| + CFX_FontCache* GetFontCache() { return m_pFontCache; }
|
| + void Clear(FX_BOOL bRelease = FALSE);
|
| + void ReleaseCachedType3(CPDF_Type3Font* pFont);
|
| + void ReleaseTransferFunc(CPDF_Object* pObj);
|
| +
|
| + private:
|
| + using CPDF_Type3CacheMap =
|
| + std::map<CPDF_Font*, CPDF_CountedObject<CPDF_Type3Cache>*>;
|
| + using CPDF_TransferFuncMap =
|
| + std::map<CPDF_Object*, CPDF_CountedObject<CPDF_TransferFunc>*>;
|
|
|
| - CPDF_Document* m_pPDFDoc;
|
| - CFX_FontCache* m_pFontCache;
|
| - CPDF_Type3CacheMap m_Type3FaceMap;
|
| - CPDF_TransferFuncMap m_TransferFuncMap;
|
| + CPDF_Document* m_pPDFDoc;
|
| + CFX_FontCache* m_pFontCache;
|
| + CPDF_Type3CacheMap m_Type3FaceMap;
|
| + CPDF_TransferFuncMap m_TransferFuncMap;
|
| };
|
| struct _PDF_RenderItem {
|
| -public:
|
| - CPDF_PageObjects* m_pObjectList;
|
| - CFX_AffineMatrix m_Matrix;
|
| + public:
|
| + CPDF_PageObjects* m_pObjectList;
|
| + CFX_AffineMatrix m_Matrix;
|
| };
|
| -typedef CFX_ArrayTemplate<_PDF_RenderItem> CPDF_RenderLayer;
|
| -class IPDF_ObjectRenderer
|
| -{
|
| -public:
|
| - static IPDF_ObjectRenderer* Create(int type);
|
| - virtual ~IPDF_ObjectRenderer() {}
|
| - virtual FX_BOOL Start(CPDF_RenderStatus* pRenderStatus, const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device, FX_BOOL bStdCS, int blendType = FXDIB_BLEND_NORMAL) = 0;
|
| - virtual FX_BOOL Continue(IFX_Pause* pPause) = 0;
|
| - FX_BOOL m_Result;
|
| +typedef CFX_ArrayTemplate<_PDF_RenderItem> CPDF_RenderLayer;
|
| +class IPDF_ObjectRenderer {
|
| + public:
|
| + static IPDF_ObjectRenderer* Create(int type);
|
| + virtual ~IPDF_ObjectRenderer() {}
|
| + virtual FX_BOOL Start(CPDF_RenderStatus* pRenderStatus,
|
| + const CPDF_PageObject* pObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + FX_BOOL bStdCS,
|
| + int blendType = FXDIB_BLEND_NORMAL) = 0;
|
| + virtual FX_BOOL Continue(IFX_Pause* pPause) = 0;
|
| + FX_BOOL m_Result;
|
| };
|
| -class CPDF_RenderStatus
|
| -{
|
| -public:
|
| - CPDF_RenderStatus();
|
| - ~CPDF_RenderStatus();
|
| - FX_BOOL Initialize(class CPDF_RenderContext* pContext, CFX_RenderDevice* pDevice, const CFX_AffineMatrix* pDeviceMatrix,
|
| - const CPDF_PageObject* pStopObj, const CPDF_RenderStatus* pParentStatus,
|
| - const CPDF_GraphicStates* pInitialStates, const CPDF_RenderOptions* pOptions,
|
| - int transparency, FX_BOOL bDropObjects, CPDF_Dictionary* pFormResource = NULL,
|
| - FX_BOOL bStdCS = FALSE, CPDF_Type3Char* pType3Char = NULL, FX_ARGB fill_color = 0,
|
| - FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE);
|
| - void RenderObjectList(const CPDF_PageObjects* pObjs, const CFX_AffineMatrix* pObj2Device);
|
| - void RenderSingleObject(const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device);
|
| - FX_BOOL ContinueSingleObject(const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device, IFX_Pause* pPause);
|
| - CPDF_RenderOptions m_Options;
|
| - CPDF_Dictionary* m_pFormResource;
|
| - CPDF_Dictionary* m_pPageResource;
|
| - CFX_PtrArray m_Type3FontCache;
|
| - CPDF_RenderContext* GetContext()
|
| - {
|
| - return m_pContext;
|
| - }
|
| -protected:
|
| - friend class CPDF_ImageRenderer;
|
| - friend class CPDF_RenderContext;
|
| - void ProcessClipPath(CPDF_ClipPath ClipPath, const CFX_AffineMatrix* pObj2Device);
|
| - void DrawClipPath(CPDF_ClipPath ClipPath, const CFX_AffineMatrix* pObj2Device);
|
| - FX_BOOL ProcessTransparency(const CPDF_PageObject* PageObj, const CFX_AffineMatrix* pObj2Device);
|
| - void ProcessObjectNoClip(const CPDF_PageObject* PageObj, const CFX_AffineMatrix* pObj2Device);
|
| - void DrawObjWithBackground(const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device);
|
| - FX_BOOL DrawObjWithBlend(const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device);
|
| - FX_BOOL ProcessPath(CPDF_PathObject* pPathObj, const CFX_AffineMatrix* pObj2Device);
|
| - void ProcessPathPattern(CPDF_PathObject* pPathObj, const CFX_AffineMatrix* pObj2Device, int& filltype, FX_BOOL& bStroke);
|
| - void DrawPathWithPattern(CPDF_PathObject* pPathObj, const CFX_AffineMatrix* pObj2Device, CPDF_Color* pColor, FX_BOOL bStroke);
|
| - void DrawTilingPattern(CPDF_TilingPattern* pPattern, CPDF_PageObject* pPageObj, const CFX_AffineMatrix* pObj2Device, FX_BOOL bStroke);
|
| - void DrawShadingPattern(CPDF_ShadingPattern* pPattern, CPDF_PageObject* pPageObj, const CFX_AffineMatrix* pObj2Device, FX_BOOL bStroke);
|
| - FX_BOOL SelectClipPath(CPDF_PathObject* pPathObj, const CFX_AffineMatrix* pObj2Device, FX_BOOL bStroke);
|
| - FX_BOOL ProcessImage(CPDF_ImageObject* pImageObj, const CFX_AffineMatrix* pObj2Device);
|
| - FX_BOOL OutputBitmapAlpha(CPDF_ImageObject* pImageObj, const CFX_AffineMatrix* pImage2Device);
|
| - FX_BOOL OutputImage(CPDF_ImageObject* pImageObj, const CFX_AffineMatrix* pImage2Device);
|
| - FX_BOOL OutputDIBSource(const CFX_DIBSource* pOutputBitmap, FX_ARGB fill_argb, int bitmap_alpha,
|
| - const CFX_AffineMatrix* pImage2Device, CPDF_ImageCache* pImageCache, FX_DWORD flags);
|
| - void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, int left, int top, FX_ARGB mask_argb,
|
| - int bitmap_alpha, int blend_mode, int bIsolated);
|
| - FX_BOOL ProcessShading(CPDF_ShadingObject* pShadingObj, const CFX_AffineMatrix* pObj2Device);
|
| - void DrawShading(CPDF_ShadingPattern* pPattern, CFX_AffineMatrix* pMatrix, FX_RECT& clip_rect,
|
| - int alpha, FX_BOOL bAlphaMode);
|
| - FX_BOOL ProcessType3Text(const CPDF_TextObject* textobj, const CFX_AffineMatrix* pObj2Device);
|
| - FX_BOOL ProcessText(const CPDF_TextObject* textobj, const CFX_AffineMatrix* pObj2Device, CFX_PathData* pClippingPath);
|
| - void DrawTextPathWithPattern(const CPDF_TextObject* textobj, const CFX_AffineMatrix* pObj2Device,
|
| - CPDF_Font* pFont, FX_FLOAT font_size,
|
| - const CFX_AffineMatrix* pTextMatrix, FX_BOOL bFill, FX_BOOL bStroke);
|
| - FX_BOOL ProcessForm(CPDF_FormObject* pFormObj, const CFX_AffineMatrix* pObj2Device);
|
| - CFX_DIBitmap* GetBackdrop(const CPDF_PageObject* pObj, const FX_RECT& rect, int& left, int& top,
|
| - FX_BOOL bBackAlphaRequired);
|
| - CFX_DIBitmap* LoadSMask(CPDF_Dictionary* pSMaskDict, FX_RECT* pClipRect, const CFX_AffineMatrix* pMatrix);
|
| - void Init(CPDF_RenderContext* pParent);
|
| - static class CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont);
|
| - static CPDF_GraphicStates* CloneObjStates(const CPDF_GraphicStates* pPathObj, FX_BOOL bStroke);
|
| - CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObject) const;
|
| - FX_ARGB GetFillArgb(const CPDF_PageObject* pObj, FX_BOOL bType3 = FALSE) const;
|
| - FX_ARGB GetStrokeArgb(const CPDF_PageObject* pObj) const;
|
| - CPDF_RenderContext* m_pContext;
|
| - FX_BOOL m_bStopped;
|
| - void DitherObjectArea(const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device);
|
| - FX_BOOL GetObjectClippedRect(const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device, FX_BOOL bLogical, FX_RECT &rect) const;
|
| - void GetScaledMatrix(CFX_Matrix &matrix) const;
|
| +class CPDF_RenderStatus {
|
| + public:
|
| + CPDF_RenderStatus();
|
| + ~CPDF_RenderStatus();
|
| + FX_BOOL Initialize(class CPDF_RenderContext* pContext,
|
| + CFX_RenderDevice* pDevice,
|
| + const CFX_AffineMatrix* pDeviceMatrix,
|
| + const CPDF_PageObject* pStopObj,
|
| + const CPDF_RenderStatus* pParentStatus,
|
| + const CPDF_GraphicStates* pInitialStates,
|
| + const CPDF_RenderOptions* pOptions,
|
| + int transparency,
|
| + FX_BOOL bDropObjects,
|
| + CPDF_Dictionary* pFormResource = NULL,
|
| + FX_BOOL bStdCS = FALSE,
|
| + CPDF_Type3Char* pType3Char = NULL,
|
| + FX_ARGB fill_color = 0,
|
| + FX_DWORD GroupFamily = 0,
|
| + FX_BOOL bLoadMask = FALSE);
|
| + void RenderObjectList(const CPDF_PageObjects* pObjs,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + void RenderSingleObject(const CPDF_PageObject* pObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + FX_BOOL ContinueSingleObject(const CPDF_PageObject* pObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + IFX_Pause* pPause);
|
| + CPDF_RenderOptions m_Options;
|
| + CPDF_Dictionary* m_pFormResource;
|
| + CPDF_Dictionary* m_pPageResource;
|
| + CFX_PtrArray m_Type3FontCache;
|
| + CPDF_RenderContext* GetContext() { return m_pContext; }
|
| +
|
| + protected:
|
| + friend class CPDF_ImageRenderer;
|
| + friend class CPDF_RenderContext;
|
| + void ProcessClipPath(CPDF_ClipPath ClipPath,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + void DrawClipPath(CPDF_ClipPath ClipPath,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + FX_BOOL ProcessTransparency(const CPDF_PageObject* PageObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + void ProcessObjectNoClip(const CPDF_PageObject* PageObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + void DrawObjWithBackground(const CPDF_PageObject* pObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + FX_BOOL DrawObjWithBlend(const CPDF_PageObject* pObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + FX_BOOL ProcessPath(CPDF_PathObject* pPathObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + void ProcessPathPattern(CPDF_PathObject* pPathObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + int& filltype,
|
| + FX_BOOL& bStroke);
|
| + void DrawPathWithPattern(CPDF_PathObject* pPathObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + CPDF_Color* pColor,
|
| + FX_BOOL bStroke);
|
| + void DrawTilingPattern(CPDF_TilingPattern* pPattern,
|
| + CPDF_PageObject* pPageObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + FX_BOOL bStroke);
|
| + void DrawShadingPattern(CPDF_ShadingPattern* pPattern,
|
| + CPDF_PageObject* pPageObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + FX_BOOL bStroke);
|
| + FX_BOOL SelectClipPath(CPDF_PathObject* pPathObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + FX_BOOL bStroke);
|
| + FX_BOOL ProcessImage(CPDF_ImageObject* pImageObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + FX_BOOL OutputBitmapAlpha(CPDF_ImageObject* pImageObj,
|
| + const CFX_AffineMatrix* pImage2Device);
|
| + FX_BOOL OutputImage(CPDF_ImageObject* pImageObj,
|
| + const CFX_AffineMatrix* pImage2Device);
|
| + FX_BOOL OutputDIBSource(const CFX_DIBSource* pOutputBitmap,
|
| + FX_ARGB fill_argb,
|
| + int bitmap_alpha,
|
| + const CFX_AffineMatrix* pImage2Device,
|
| + CPDF_ImageCache* pImageCache,
|
| + FX_DWORD flags);
|
| + void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap,
|
| + int left,
|
| + int top,
|
| + FX_ARGB mask_argb,
|
| + int bitmap_alpha,
|
| + int blend_mode,
|
| + int bIsolated);
|
| + FX_BOOL ProcessShading(CPDF_ShadingObject* pShadingObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + void DrawShading(CPDF_ShadingPattern* pPattern,
|
| + CFX_AffineMatrix* pMatrix,
|
| + FX_RECT& clip_rect,
|
| + int alpha,
|
| + FX_BOOL bAlphaMode);
|
| + FX_BOOL ProcessType3Text(const CPDF_TextObject* textobj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + FX_BOOL ProcessText(const CPDF_TextObject* textobj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + CFX_PathData* pClippingPath);
|
| + void DrawTextPathWithPattern(const CPDF_TextObject* textobj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + CPDF_Font* pFont,
|
| + FX_FLOAT font_size,
|
| + const CFX_AffineMatrix* pTextMatrix,
|
| + FX_BOOL bFill,
|
| + FX_BOOL bStroke);
|
| + FX_BOOL ProcessForm(CPDF_FormObject* pFormObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + CFX_DIBitmap* GetBackdrop(const CPDF_PageObject* pObj,
|
| + const FX_RECT& rect,
|
| + int& left,
|
| + int& top,
|
| + FX_BOOL bBackAlphaRequired);
|
| + CFX_DIBitmap* LoadSMask(CPDF_Dictionary* pSMaskDict,
|
| + FX_RECT* pClipRect,
|
| + const CFX_AffineMatrix* pMatrix);
|
| + void Init(CPDF_RenderContext* pParent);
|
| + static class CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont);
|
| + static CPDF_GraphicStates* CloneObjStates(const CPDF_GraphicStates* pPathObj,
|
| + FX_BOOL bStroke);
|
| + CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObject) const;
|
| + FX_ARGB GetFillArgb(const CPDF_PageObject* pObj,
|
| + FX_BOOL bType3 = FALSE) const;
|
| + FX_ARGB GetStrokeArgb(const CPDF_PageObject* pObj) const;
|
| + CPDF_RenderContext* m_pContext;
|
| + FX_BOOL m_bStopped;
|
| + void DitherObjectArea(const CPDF_PageObject* pObj,
|
| + const CFX_AffineMatrix* pObj2Device);
|
| + FX_BOOL GetObjectClippedRect(const CPDF_PageObject* pObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + FX_BOOL bLogical,
|
| + FX_RECT& rect) const;
|
| + void GetScaledMatrix(CFX_Matrix& matrix) const;
|
|
|
| -protected:
|
| - static const int kRenderMaxRecursionDepth = 64;
|
| - static int s_CurrentRecursionDepth;
|
| + protected:
|
| + static const int kRenderMaxRecursionDepth = 64;
|
| + static int s_CurrentRecursionDepth;
|
|
|
| - CFX_RenderDevice* m_pDevice;
|
| - CFX_AffineMatrix m_DeviceMatrix;
|
| - CPDF_ClipPath m_LastClipPath;
|
| - const CPDF_PageObject* m_pCurObj;
|
| - const CPDF_PageObject* m_pStopObj;
|
| - CPDF_GraphicStates m_InitialStates;
|
| - int m_HalftoneLimit;
|
| - IPDF_ObjectRenderer* m_pObjectRenderer;
|
| - FX_BOOL m_bPrint;
|
| - int m_Transparency;
|
| - int m_DitherBits;
|
| - FX_BOOL m_bDropObjects;
|
| - FX_BOOL m_bStdCS;
|
| - FX_DWORD m_GroupFamily;
|
| - FX_BOOL m_bLoadMask;
|
| - CPDF_Type3Char * m_pType3Char;
|
| - FX_ARGB m_T3FillColor;
|
| - int m_curBlend;
|
| + CFX_RenderDevice* m_pDevice;
|
| + CFX_AffineMatrix m_DeviceMatrix;
|
| + CPDF_ClipPath m_LastClipPath;
|
| + const CPDF_PageObject* m_pCurObj;
|
| + const CPDF_PageObject* m_pStopObj;
|
| + CPDF_GraphicStates m_InitialStates;
|
| + int m_HalftoneLimit;
|
| + IPDF_ObjectRenderer* m_pObjectRenderer;
|
| + FX_BOOL m_bPrint;
|
| + int m_Transparency;
|
| + int m_DitherBits;
|
| + FX_BOOL m_bDropObjects;
|
| + FX_BOOL m_bStdCS;
|
| + FX_DWORD m_GroupFamily;
|
| + FX_BOOL m_bLoadMask;
|
| + CPDF_Type3Char* m_pType3Char;
|
| + FX_ARGB m_T3FillColor;
|
| + int m_curBlend;
|
| };
|
| -class CPDF_ImageLoader
|
| -{
|
| -public:
|
| - CPDF_ImageLoader()
|
| - {
|
| - m_pBitmap = NULL;
|
| - m_pMask = NULL;
|
| - m_MatteColor = 0;
|
| - m_bCached = FALSE;
|
| - m_nDownsampleWidth = 0;
|
| - m_nDownsampleHeight = 0;
|
| - }
|
| +class CPDF_ImageLoader {
|
| + public:
|
| + CPDF_ImageLoader() {
|
| + m_pBitmap = NULL;
|
| + m_pMask = NULL;
|
| + m_MatteColor = 0;
|
| + m_bCached = FALSE;
|
| + m_nDownsampleWidth = 0;
|
| + m_nDownsampleHeight = 0;
|
| + }
|
|
|
| - FX_BOOL Load(const CPDF_ImageObject* pImage, CPDF_PageRenderCache* pCache, FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE, CPDF_RenderStatus* pRenderStatus = NULL);
|
| + FX_BOOL Load(const CPDF_ImageObject* pImage,
|
| + CPDF_PageRenderCache* pCache,
|
| + FX_BOOL bStdCS = FALSE,
|
| + FX_DWORD GroupFamily = 0,
|
| + FX_BOOL bLoadMask = FALSE,
|
| + CPDF_RenderStatus* pRenderStatus = NULL);
|
|
|
| - FX_BOOL StartLoadImage(const CPDF_ImageObject* pImage, CPDF_PageRenderCache* pCache, void*& LoadHandle, FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE, CPDF_RenderStatus* pRenderStatus = NULL, int32_t nDownsampleWidth = 0, int32_t nDownsampleHeight = 0);
|
| - FX_BOOL Continue(void* LoadHandle, IFX_Pause* pPause);
|
| - ~CPDF_ImageLoader();
|
| - CFX_DIBSource* m_pBitmap;
|
| - CFX_DIBSource* m_pMask;
|
| - FX_DWORD m_MatteColor;
|
| - FX_BOOL m_bCached;
|
| -protected:
|
| - int32_t m_nDownsampleWidth;
|
| - int32_t m_nDownsampleHeight;
|
| + FX_BOOL StartLoadImage(const CPDF_ImageObject* pImage,
|
| + CPDF_PageRenderCache* pCache,
|
| + void*& LoadHandle,
|
| + FX_BOOL bStdCS = FALSE,
|
| + FX_DWORD GroupFamily = 0,
|
| + FX_BOOL bLoadMask = FALSE,
|
| + CPDF_RenderStatus* pRenderStatus = NULL,
|
| + int32_t nDownsampleWidth = 0,
|
| + int32_t nDownsampleHeight = 0);
|
| + FX_BOOL Continue(void* LoadHandle, IFX_Pause* pPause);
|
| + ~CPDF_ImageLoader();
|
| + CFX_DIBSource* m_pBitmap;
|
| + CFX_DIBSource* m_pMask;
|
| + FX_DWORD m_MatteColor;
|
| + FX_BOOL m_bCached;
|
| +
|
| + protected:
|
| + int32_t m_nDownsampleWidth;
|
| + int32_t m_nDownsampleHeight;
|
| };
|
| -class CPDF_ProgressiveImageLoaderHandle
|
| -{
|
| -public:
|
| - CPDF_ProgressiveImageLoaderHandle();
|
| - ~CPDF_ProgressiveImageLoaderHandle();
|
| +class CPDF_ProgressiveImageLoaderHandle {
|
| + public:
|
| + CPDF_ProgressiveImageLoaderHandle();
|
| + ~CPDF_ProgressiveImageLoaderHandle();
|
| +
|
| + FX_BOOL Start(CPDF_ImageLoader* pImageLoader,
|
| + const CPDF_ImageObject* pImage,
|
| + CPDF_PageRenderCache* pCache,
|
| + FX_BOOL bStdCS = FALSE,
|
| + FX_DWORD GroupFamily = 0,
|
| + FX_BOOL bLoadMask = FALSE,
|
| + CPDF_RenderStatus* pRenderStatus = NULL,
|
| + int32_t nDownsampleWidth = 0,
|
| + int32_t nDownsampleHeight = 0);
|
| + FX_BOOL Continue(IFX_Pause* pPause);
|
|
|
| - FX_BOOL Start(CPDF_ImageLoader* pImageLoader, const CPDF_ImageObject* pImage, CPDF_PageRenderCache* pCache, FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE, CPDF_RenderStatus* pRenderStatus = NULL, int32_t nDownsampleWidth = 0, int32_t nDownsampleHeight = 0);
|
| - FX_BOOL Continue(IFX_Pause* pPause);
|
| -protected:
|
| - CPDF_ImageLoader* m_pImageLoader;
|
| - CPDF_PageRenderCache* m_pCache;
|
| - CPDF_ImageObject* m_pImage;
|
| - int32_t m_nDownsampleWidth;
|
| - int32_t m_nDownsampleHeight;
|
| + protected:
|
| + CPDF_ImageLoader* m_pImageLoader;
|
| + CPDF_PageRenderCache* m_pCache;
|
| + CPDF_ImageObject* m_pImage;
|
| + int32_t m_nDownsampleWidth;
|
| + int32_t m_nDownsampleHeight;
|
| };
|
| class CFX_ImageTransformer;
|
| -class CPDF_ImageRenderer : public IPDF_ObjectRenderer
|
| -{
|
| -public:
|
| - CPDF_ImageRenderer();
|
| - ~CPDF_ImageRenderer();
|
| - FX_BOOL Start(CPDF_RenderStatus* pStatus, const CPDF_PageObject* pObj, const CFX_AffineMatrix* pObj2Device, FX_BOOL bStdCS, int blendType = FXDIB_BLEND_NORMAL);
|
| - FX_BOOL Start(CPDF_RenderStatus* pStatus, const CFX_DIBSource* pDIBSource, FX_ARGB bitmap_argb,
|
| - int bitmap_alpha, const CFX_AffineMatrix* pImage2Device, FX_DWORD flags, FX_BOOL bStdCS, int blendType = FXDIB_BLEND_NORMAL);
|
| - FX_BOOL Continue(IFX_Pause* pPause);
|
| -protected:
|
| - CPDF_RenderStatus* m_pRenderStatus;
|
| - CPDF_ImageObject* m_pImageObject;
|
| - int m_Status;
|
| - const CFX_AffineMatrix* m_pObj2Device;
|
| - CFX_AffineMatrix m_ImageMatrix;
|
| - CPDF_ImageLoader m_Loader;
|
| - const CFX_DIBSource* m_pDIBSource;
|
| - CFX_DIBitmap* m_pClone;
|
| - int m_BitmapAlpha;
|
| - FX_BOOL m_bPatternColor;
|
| - CPDF_Pattern* m_pPattern;
|
| - FX_ARGB m_FillArgb;
|
| - FX_DWORD m_Flags;
|
| - CPDF_QuickStretcher* m_pQuickStretcher;
|
| - CFX_ImageTransformer* m_pTransformer;
|
| - void* m_DeviceHandle;
|
| - void* m_LoadHandle;
|
| - FX_BOOL m_bStdCS;
|
| - int m_BlendType;
|
| - FX_BOOL StartBitmapAlpha();
|
| - FX_BOOL StartDIBSource();
|
| - FX_BOOL StartRenderDIBSource();
|
| - FX_BOOL StartLoadDIBSource();
|
| - FX_BOOL DrawMaskedImage();
|
| - FX_BOOL DrawPatternImage(const CFX_Matrix* pObj2Device);
|
| +class CPDF_ImageRenderer : public IPDF_ObjectRenderer {
|
| + public:
|
| + CPDF_ImageRenderer();
|
| + ~CPDF_ImageRenderer();
|
| + FX_BOOL Start(CPDF_RenderStatus* pStatus,
|
| + const CPDF_PageObject* pObj,
|
| + const CFX_AffineMatrix* pObj2Device,
|
| + FX_BOOL bStdCS,
|
| + int blendType = FXDIB_BLEND_NORMAL);
|
| + FX_BOOL Start(CPDF_RenderStatus* pStatus,
|
| + const CFX_DIBSource* pDIBSource,
|
| + FX_ARGB bitmap_argb,
|
| + int bitmap_alpha,
|
| + const CFX_AffineMatrix* pImage2Device,
|
| + FX_DWORD flags,
|
| + FX_BOOL bStdCS,
|
| + int blendType = FXDIB_BLEND_NORMAL);
|
| + FX_BOOL Continue(IFX_Pause* pPause);
|
| +
|
| + protected:
|
| + CPDF_RenderStatus* m_pRenderStatus;
|
| + CPDF_ImageObject* m_pImageObject;
|
| + int m_Status;
|
| + const CFX_AffineMatrix* m_pObj2Device;
|
| + CFX_AffineMatrix m_ImageMatrix;
|
| + CPDF_ImageLoader m_Loader;
|
| + const CFX_DIBSource* m_pDIBSource;
|
| + CFX_DIBitmap* m_pClone;
|
| + int m_BitmapAlpha;
|
| + FX_BOOL m_bPatternColor;
|
| + CPDF_Pattern* m_pPattern;
|
| + FX_ARGB m_FillArgb;
|
| + FX_DWORD m_Flags;
|
| + CPDF_QuickStretcher* m_pQuickStretcher;
|
| + CFX_ImageTransformer* m_pTransformer;
|
| + void* m_DeviceHandle;
|
| + void* m_LoadHandle;
|
| + FX_BOOL m_bStdCS;
|
| + int m_BlendType;
|
| + FX_BOOL StartBitmapAlpha();
|
| + FX_BOOL StartDIBSource();
|
| + FX_BOOL StartRenderDIBSource();
|
| + FX_BOOL StartLoadDIBSource();
|
| + FX_BOOL DrawMaskedImage();
|
| + FX_BOOL DrawPatternImage(const CFX_Matrix* pObj2Device);
|
| };
|
| -class CPDF_ScaledRenderBuffer
|
| -{
|
| -public:
|
| - CPDF_ScaledRenderBuffer();
|
| - ~CPDF_ScaledRenderBuffer();
|
| - FX_BOOL Initialize(CPDF_RenderContext* pContext, CFX_RenderDevice* pDevice, FX_RECT* pRect,
|
| - const CPDF_PageObject* pObj, const CPDF_RenderOptions *pOptions = NULL, int max_dpi = 0);
|
| - CFX_RenderDevice* GetDevice()
|
| - {
|
| - return m_pBitmapDevice ? m_pBitmapDevice : m_pDevice;
|
| - }
|
| - CFX_AffineMatrix* GetMatrix()
|
| - {
|
| - return &m_Matrix;
|
| - }
|
| - void OutputToDevice();
|
| -private:
|
| - CFX_RenderDevice* m_pDevice;
|
| - CPDF_RenderContext* m_pContext;
|
| - FX_RECT m_Rect;
|
| - const CPDF_PageObject* m_pObject;
|
| - CFX_FxgeDevice* m_pBitmapDevice;
|
| - CFX_AffineMatrix m_Matrix;
|
| +class CPDF_ScaledRenderBuffer {
|
| + public:
|
| + CPDF_ScaledRenderBuffer();
|
| + ~CPDF_ScaledRenderBuffer();
|
| + FX_BOOL Initialize(CPDF_RenderContext* pContext,
|
| + CFX_RenderDevice* pDevice,
|
| + FX_RECT* pRect,
|
| + const CPDF_PageObject* pObj,
|
| + const CPDF_RenderOptions* pOptions = NULL,
|
| + int max_dpi = 0);
|
| + CFX_RenderDevice* GetDevice() {
|
| + return m_pBitmapDevice ? m_pBitmapDevice : m_pDevice;
|
| + }
|
| + CFX_AffineMatrix* GetMatrix() { return &m_Matrix; }
|
| + void OutputToDevice();
|
| +
|
| + private:
|
| + CFX_RenderDevice* m_pDevice;
|
| + CPDF_RenderContext* m_pContext;
|
| + FX_RECT m_Rect;
|
| + const CPDF_PageObject* m_pObject;
|
| + CFX_FxgeDevice* m_pBitmapDevice;
|
| + CFX_AffineMatrix m_Matrix;
|
| };
|
| class ICodec_ScanlineDecoder;
|
| -class CPDF_QuickStretcher
|
| -{
|
| -public:
|
| - CPDF_QuickStretcher();
|
| - ~CPDF_QuickStretcher();
|
| - FX_BOOL Start(CPDF_ImageObject* pImageObj, CFX_AffineMatrix* pImage2Device, const FX_RECT* pClipBox);
|
| - FX_BOOL Continue(IFX_Pause* pPause);
|
| - CFX_DIBitmap* m_pBitmap;
|
| - int m_ResultLeft, m_ResultTop, m_ClipLeft, m_ClipTop;
|
| - int m_DestWidth, m_DestHeight, m_ResultWidth, m_ResultHeight;
|
| - int m_Bpp, m_SrcWidth, m_SrcHeight;
|
| - FX_BOOL m_bFlipX, m_bFlipY;
|
| - CPDF_ColorSpace* m_pCS;
|
| - ICodec_ScanlineDecoder* m_pDecoder;
|
| - CPDF_StreamAcc m_StreamAcc;
|
| - int m_LineIndex;
|
| +class CPDF_QuickStretcher {
|
| + public:
|
| + CPDF_QuickStretcher();
|
| + ~CPDF_QuickStretcher();
|
| + FX_BOOL Start(CPDF_ImageObject* pImageObj,
|
| + CFX_AffineMatrix* pImage2Device,
|
| + const FX_RECT* pClipBox);
|
| + FX_BOOL Continue(IFX_Pause* pPause);
|
| + CFX_DIBitmap* m_pBitmap;
|
| + int m_ResultLeft, m_ResultTop, m_ClipLeft, m_ClipTop;
|
| + int m_DestWidth, m_DestHeight, m_ResultWidth, m_ResultHeight;
|
| + int m_Bpp, m_SrcWidth, m_SrcHeight;
|
| + FX_BOOL m_bFlipX, m_bFlipY;
|
| + CPDF_ColorSpace* m_pCS;
|
| + ICodec_ScanlineDecoder* m_pDecoder;
|
| + CPDF_StreamAcc m_StreamAcc;
|
| + int m_LineIndex;
|
| };
|
| -class CPDF_DeviceBuffer
|
| -{
|
| -public:
|
| - CPDF_DeviceBuffer();
|
| - ~CPDF_DeviceBuffer();
|
| - FX_BOOL Initialize(CPDF_RenderContext* pContext, CFX_RenderDevice* pDevice, FX_RECT* pRect,
|
| - const CPDF_PageObject* pObj, int max_dpi = 0);
|
| - void OutputToDevice();
|
| - CFX_DIBitmap* GetBitmap() const
|
| - {
|
| - return m_pBitmap;
|
| - }
|
| - const CFX_AffineMatrix* GetMatrix() const
|
| - {
|
| - return &m_Matrix;
|
| - }
|
| -private:
|
| - CFX_RenderDevice* m_pDevice;
|
| - CPDF_RenderContext* m_pContext;
|
| - FX_RECT m_Rect;
|
| - const CPDF_PageObject* m_pObject;
|
| - CFX_DIBitmap* m_pBitmap;
|
| - CFX_AffineMatrix m_Matrix;
|
| +class CPDF_DeviceBuffer {
|
| + public:
|
| + CPDF_DeviceBuffer();
|
| + ~CPDF_DeviceBuffer();
|
| + FX_BOOL Initialize(CPDF_RenderContext* pContext,
|
| + CFX_RenderDevice* pDevice,
|
| + FX_RECT* pRect,
|
| + const CPDF_PageObject* pObj,
|
| + int max_dpi = 0);
|
| + void OutputToDevice();
|
| + CFX_DIBitmap* GetBitmap() const { return m_pBitmap; }
|
| + const CFX_AffineMatrix* GetMatrix() const { return &m_Matrix; }
|
| +
|
| + private:
|
| + CFX_RenderDevice* m_pDevice;
|
| + CPDF_RenderContext* m_pContext;
|
| + FX_RECT m_Rect;
|
| + const CPDF_PageObject* m_pObject;
|
| + CFX_DIBitmap* m_pBitmap;
|
| + CFX_AffineMatrix m_Matrix;
|
| };
|
| -class CPDF_ImageCache
|
| -{
|
| -public:
|
| - CPDF_ImageCache(CPDF_Document* pDoc, CPDF_Stream* pStream);
|
| - ~CPDF_ImageCache();
|
| - void ClearImageData();
|
| - void Reset(const CFX_DIBitmap* pBitmap);
|
| - FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap, CFX_DIBSource*& pMask, FX_DWORD& MatteColor, CPDF_Dictionary* pPageResources,
|
| - FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE,
|
| - CPDF_RenderStatus* pRenderStatus = NULL, int32_t downsampleWidth = 0, int32_t downsampleHeight = 0);
|
| - FX_DWORD EstimateSize() const
|
| - {
|
| - return m_dwCacheSize;
|
| - }
|
| - FX_DWORD GetTimeCount() const
|
| - {
|
| - return m_dwTimeCount;
|
| - }
|
| - CPDF_Stream* GetStream() const
|
| - {
|
| - return m_pStream;
|
| - }
|
| - void SetTimeCount(FX_DWORD dwTimeCount)
|
| - {
|
| - m_dwTimeCount = dwTimeCount;
|
| - }
|
| - int m_dwTimeCount;
|
| -public:
|
| - int StartGetCachedBitmap(CPDF_Dictionary* pFormResources, CPDF_Dictionary* pPageResources,
|
| - FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0,
|
| - FX_BOOL bLoadMask = FALSE, CPDF_RenderStatus* pRenderStatus = NULL, int32_t downsampleWidth = 0, int32_t downsampleHeight = 0);
|
| - int Continue(IFX_Pause* pPause);
|
| - int ContinueGetCachedBitmap();
|
| - CFX_DIBSource* DetachBitmap();
|
| - CFX_DIBSource* DetachMask();
|
| - CFX_DIBSource* m_pCurBitmap;
|
| - CFX_DIBSource* m_pCurMask;
|
| - FX_DWORD m_MatteColor;
|
| - CPDF_RenderStatus* m_pRenderStatus;
|
| -protected:
|
| - CPDF_Document* m_pDocument;
|
| - CPDF_Stream* m_pStream;
|
| - CFX_DIBSource* m_pCachedBitmap;
|
| - CFX_DIBSource* m_pCachedMask;
|
| - FX_DWORD m_dwCacheSize;
|
| - void CalcSize();
|
| +class CPDF_ImageCache {
|
| + public:
|
| + CPDF_ImageCache(CPDF_Document* pDoc, CPDF_Stream* pStream);
|
| + ~CPDF_ImageCache();
|
| + void ClearImageData();
|
| + void Reset(const CFX_DIBitmap* pBitmap);
|
| + FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap,
|
| + CFX_DIBSource*& pMask,
|
| + FX_DWORD& MatteColor,
|
| + CPDF_Dictionary* pPageResources,
|
| + FX_BOOL bStdCS = FALSE,
|
| + FX_DWORD GroupFamily = 0,
|
| + FX_BOOL bLoadMask = FALSE,
|
| + CPDF_RenderStatus* pRenderStatus = NULL,
|
| + int32_t downsampleWidth = 0,
|
| + int32_t downsampleHeight = 0);
|
| + FX_DWORD EstimateSize() const { return m_dwCacheSize; }
|
| + FX_DWORD GetTimeCount() const { return m_dwTimeCount; }
|
| + CPDF_Stream* GetStream() const { return m_pStream; }
|
| + void SetTimeCount(FX_DWORD dwTimeCount) { m_dwTimeCount = dwTimeCount; }
|
| + int m_dwTimeCount;
|
| +
|
| + public:
|
| + int StartGetCachedBitmap(CPDF_Dictionary* pFormResources,
|
| + CPDF_Dictionary* pPageResources,
|
| + FX_BOOL bStdCS = FALSE,
|
| + FX_DWORD GroupFamily = 0,
|
| + FX_BOOL bLoadMask = FALSE,
|
| + CPDF_RenderStatus* pRenderStatus = NULL,
|
| + int32_t downsampleWidth = 0,
|
| + int32_t downsampleHeight = 0);
|
| + int Continue(IFX_Pause* pPause);
|
| + int ContinueGetCachedBitmap();
|
| + CFX_DIBSource* DetachBitmap();
|
| + CFX_DIBSource* DetachMask();
|
| + CFX_DIBSource* m_pCurBitmap;
|
| + CFX_DIBSource* m_pCurMask;
|
| + FX_DWORD m_MatteColor;
|
| + CPDF_RenderStatus* m_pRenderStatus;
|
| +
|
| + protected:
|
| + CPDF_Document* m_pDocument;
|
| + CPDF_Stream* m_pStream;
|
| + CFX_DIBSource* m_pCachedBitmap;
|
| + CFX_DIBSource* m_pCachedMask;
|
| + FX_DWORD m_dwCacheSize;
|
| + void CalcSize();
|
| };
|
| typedef struct {
|
| - FX_FLOAT m_DecodeMin;
|
| - FX_FLOAT m_DecodeStep;
|
| - int m_ColorKeyMin;
|
| - int m_ColorKeyMax;
|
| + FX_FLOAT m_DecodeMin;
|
| + FX_FLOAT m_DecodeStep;
|
| + int m_ColorKeyMin;
|
| + int m_ColorKeyMax;
|
| } DIB_COMP_DATA;
|
| -class CPDF_DIBSource : public CFX_DIBSource
|
| -{
|
| -public:
|
| - CPDF_DIBSource();
|
| - virtual ~CPDF_DIBSource();
|
| - FX_BOOL Load(CPDF_Document* pDoc, const CPDF_Stream* pStream,
|
| - CPDF_DIBSource** ppMask, FX_DWORD* pMatteColor,
|
| - CPDF_Dictionary* pFormResources, CPDF_Dictionary* pPageResources,
|
| - FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE);
|
| - virtual FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) const;
|
| - virtual uint8_t* GetBuffer() const;
|
| - virtual const uint8_t* GetScanline(int line) const;
|
| - virtual void DownSampleScanline(int line, uint8_t* dest_scan, int dest_bpp,
|
| - int dest_width, FX_BOOL bFlipX, int clip_left, int clip_width) const;
|
| - virtual void SetDownSampleSize(int dest_width, int dest_height) const;
|
| - CFX_DIBitmap* GetBitmap() const;
|
| - void ReleaseBitmap(CFX_DIBitmap*) const;
|
| - void ClearImageData();
|
| -public:
|
| - int StartLoadDIBSource(CPDF_Document* pDoc, const CPDF_Stream* pStream, FX_BOOL bHasMask,
|
| - CPDF_Dictionary* pFormResources, CPDF_Dictionary* pPageResources,
|
| - FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE);
|
| - int ContinueLoadDIBSource(IFX_Pause* pPause);
|
| - int StratLoadMask();
|
| - int StartLoadMaskDIB();
|
| - int ContinueLoadMaskDIB(IFX_Pause* pPause);
|
| - int ContinueToLoadMask();
|
| - CPDF_DIBSource* DetachMask();
|
| - CPDF_DIBSource* m_pMask;
|
| - FX_DWORD m_MatteColor;
|
| - void* m_pJbig2Context;
|
| - CPDF_StreamAcc* m_pGlobalStream;
|
| - FX_BOOL m_bStdCS;
|
| - int m_Status;
|
| - CPDF_Object* m_pMaskStream;
|
| - FX_BOOL m_bHasMask;
|
| -protected:
|
| - FX_BOOL LoadColorInfo(CPDF_Dictionary* pFormResources, CPDF_Dictionary* pPageResources);
|
| - DIB_COMP_DATA* GetDecodeAndMaskArray(FX_BOOL& bDefaultDecode, FX_BOOL& bColorKey);
|
| - CPDF_DIBSource* LoadMask(FX_DWORD& MatteColor);
|
| - CPDF_DIBSource* LoadMaskDIB(CPDF_Stream* pMask);
|
| - void LoadJpxBitmap();
|
| - void LoadPalette();
|
| - int CreateDecoder();
|
| - void TranslateScanline24bpp(uint8_t* dest_scan, const uint8_t* src_scan) const;
|
| - void ValidateDictParam();
|
| - CPDF_Document* m_pDocument;
|
| - const CPDF_Stream* m_pStream;
|
| - CPDF_StreamAcc* m_pStreamAcc;
|
| - const CPDF_Dictionary* m_pDict;
|
| - CPDF_ColorSpace* m_pColorSpace;
|
| - FX_DWORD m_Family;
|
| - FX_DWORD m_bpc;
|
| - FX_DWORD m_bpc_orig;
|
| - FX_DWORD m_nComponents;
|
| - FX_DWORD m_GroupFamily;
|
| - FX_BOOL m_bLoadMask;
|
| - FX_BOOL m_bDefaultDecode;
|
| - FX_BOOL m_bImageMask;
|
| - FX_BOOL m_bDoBpcCheck;
|
| - FX_BOOL m_bColorKey;
|
| - DIB_COMP_DATA* m_pCompData;
|
| - uint8_t* m_pLineBuf;
|
| - uint8_t* m_pMaskedLine;
|
| - nonstd::unique_ptr<CFX_DIBitmap> m_pCachedBitmap;
|
| - ICodec_ScanlineDecoder* m_pDecoder;
|
| +class CPDF_DIBSource : public CFX_DIBSource {
|
| + public:
|
| + CPDF_DIBSource();
|
| + virtual ~CPDF_DIBSource();
|
| + FX_BOOL Load(CPDF_Document* pDoc,
|
| + const CPDF_Stream* pStream,
|
| + CPDF_DIBSource** ppMask,
|
| + FX_DWORD* pMatteColor,
|
| + CPDF_Dictionary* pFormResources,
|
| + CPDF_Dictionary* pPageResources,
|
| + FX_BOOL bStdCS = FALSE,
|
| + FX_DWORD GroupFamily = 0,
|
| + FX_BOOL bLoadMask = FALSE);
|
| + virtual FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) const;
|
| + virtual uint8_t* GetBuffer() const;
|
| + virtual const uint8_t* GetScanline(int line) const;
|
| + virtual void DownSampleScanline(int line,
|
| + uint8_t* dest_scan,
|
| + int dest_bpp,
|
| + int dest_width,
|
| + FX_BOOL bFlipX,
|
| + int clip_left,
|
| + int clip_width) const;
|
| + virtual void SetDownSampleSize(int dest_width, int dest_height) const;
|
| + CFX_DIBitmap* GetBitmap() const;
|
| + void ReleaseBitmap(CFX_DIBitmap*) const;
|
| + void ClearImageData();
|
| +
|
| + public:
|
| + int StartLoadDIBSource(CPDF_Document* pDoc,
|
| + const CPDF_Stream* pStream,
|
| + FX_BOOL bHasMask,
|
| + CPDF_Dictionary* pFormResources,
|
| + CPDF_Dictionary* pPageResources,
|
| + FX_BOOL bStdCS = FALSE,
|
| + FX_DWORD GroupFamily = 0,
|
| + FX_BOOL bLoadMask = FALSE);
|
| + int ContinueLoadDIBSource(IFX_Pause* pPause);
|
| + int StratLoadMask();
|
| + int StartLoadMaskDIB();
|
| + int ContinueLoadMaskDIB(IFX_Pause* pPause);
|
| + int ContinueToLoadMask();
|
| + CPDF_DIBSource* DetachMask();
|
| + CPDF_DIBSource* m_pMask;
|
| + FX_DWORD m_MatteColor;
|
| + void* m_pJbig2Context;
|
| + CPDF_StreamAcc* m_pGlobalStream;
|
| + FX_BOOL m_bStdCS;
|
| + int m_Status;
|
| + CPDF_Object* m_pMaskStream;
|
| + FX_BOOL m_bHasMask;
|
| +
|
| + protected:
|
| + FX_BOOL LoadColorInfo(CPDF_Dictionary* pFormResources,
|
| + CPDF_Dictionary* pPageResources);
|
| + DIB_COMP_DATA* GetDecodeAndMaskArray(FX_BOOL& bDefaultDecode,
|
| + FX_BOOL& bColorKey);
|
| + CPDF_DIBSource* LoadMask(FX_DWORD& MatteColor);
|
| + CPDF_DIBSource* LoadMaskDIB(CPDF_Stream* pMask);
|
| + void LoadJpxBitmap();
|
| + void LoadPalette();
|
| + int CreateDecoder();
|
| + void TranslateScanline24bpp(uint8_t* dest_scan,
|
| + const uint8_t* src_scan) const;
|
| + void ValidateDictParam();
|
| + CPDF_Document* m_pDocument;
|
| + const CPDF_Stream* m_pStream;
|
| + CPDF_StreamAcc* m_pStreamAcc;
|
| + const CPDF_Dictionary* m_pDict;
|
| + CPDF_ColorSpace* m_pColorSpace;
|
| + FX_DWORD m_Family;
|
| + FX_DWORD m_bpc;
|
| + FX_DWORD m_bpc_orig;
|
| + FX_DWORD m_nComponents;
|
| + FX_DWORD m_GroupFamily;
|
| + FX_BOOL m_bLoadMask;
|
| + FX_BOOL m_bDefaultDecode;
|
| + FX_BOOL m_bImageMask;
|
| + FX_BOOL m_bDoBpcCheck;
|
| + FX_BOOL m_bColorKey;
|
| + DIB_COMP_DATA* m_pCompData;
|
| + uint8_t* m_pLineBuf;
|
| + uint8_t* m_pMaskedLine;
|
| + nonstd::unique_ptr<CFX_DIBitmap> m_pCachedBitmap;
|
| + ICodec_ScanlineDecoder* m_pDecoder;
|
| };
|
| -#define FPDF_HUGE_IMAGE_SIZE 60000000
|
| -class CPDF_DIBTransferFunc : public CFX_FilteredDIB
|
| -{
|
| -public:
|
| - CPDF_DIBTransferFunc(const CPDF_TransferFunc* pTransferFunc);
|
| - virtual FXDIB_Format GetDestFormat();
|
| - virtual FX_ARGB* GetDestPalette()
|
| - {
|
| - return NULL;
|
| - }
|
| - virtual void TranslateScanline(uint8_t* dest_buf, const uint8_t* src_buf) const;
|
| - virtual void TranslateDownSamples(uint8_t* dest_buf, const uint8_t* src_buf, int pixels, int Bpp) const;
|
| - const uint8_t* m_RampR;
|
| - const uint8_t* m_RampG;
|
| - const uint8_t* m_RampB;
|
| +#define FPDF_HUGE_IMAGE_SIZE 60000000
|
| +class CPDF_DIBTransferFunc : public CFX_FilteredDIB {
|
| + public:
|
| + CPDF_DIBTransferFunc(const CPDF_TransferFunc* pTransferFunc);
|
| + virtual FXDIB_Format GetDestFormat();
|
| + virtual FX_ARGB* GetDestPalette() { return NULL; }
|
| + virtual void TranslateScanline(uint8_t* dest_buf,
|
| + const uint8_t* src_buf) const;
|
| + virtual void TranslateDownSamples(uint8_t* dest_buf,
|
| + const uint8_t* src_buf,
|
| + int pixels,
|
| + int Bpp) const;
|
| + const uint8_t* m_RampR;
|
| + const uint8_t* m_RampG;
|
| + const uint8_t* m_RampB;
|
| };
|
| struct _CPDF_UniqueKeyGen {
|
| - void Generate(int count, ...);
|
| - FX_CHAR m_Key[128];
|
| - int m_KeyLen;
|
| + void Generate(int count, ...);
|
| + FX_CHAR m_Key[128];
|
| + int m_KeyLen;
|
| };
|
|
|
| #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_
|
|
|