diff options
Diffstat (limited to 'core/include')
-rw-r--r-- | core/include/fpdfapi/fpdf_parser.h | 11 | ||||
-rw-r--r-- | core/include/fpdfapi/fpdf_resource.h | 72 | ||||
-rw-r--r-- | core/include/fxcrt/fx_basic.h | 26 | ||||
-rw-r--r-- | core/include/fxcrt/fx_stream.h | 32 | ||||
-rw-r--r-- | core/include/fxge/fx_dib.h | 31 | ||||
-rw-r--r-- | core/include/fxge/fx_font.h | 12 |
6 files changed, 69 insertions, 115 deletions
diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h index 5903e82a16..53404b7586 100644 --- a/core/include/fpdfapi/fpdf_parser.h +++ b/core/include/fpdfapi/fpdf_parser.h @@ -476,16 +476,12 @@ class IPDF_SecurityHandler { CPDF_Dictionary* pEncryptDict) = 0; virtual FX_DWORD GetPermissions() = 0; - virtual FX_BOOL GetCryptInfo(int& cipher, const uint8_t*& buffer, int& keylen) = 0; virtual FX_BOOL IsMetadataEncrypted() = 0; - virtual CPDF_CryptoHandler* CreateCryptoHandler() = 0; - - virtual CPDF_StandardSecurityHandler* GetStandardHandler() { return NULL; } }; #define PDF_ENCRYPT_CONTENT 0 @@ -797,19 +793,22 @@ class IPDF_DataAvail { }; enum PDF_PAGENODE_TYPE { - PDF_PAGENODE_UNKOWN = 0, + PDF_PAGENODE_UNKNOWN = 0, PDF_PAGENODE_PAGE, PDF_PAGENODE_PAGES, PDF_PAGENODE_ARRAY, }; + class CPDF_PageNode { public: - CPDF_PageNode() : m_type(PDF_PAGENODE_UNKOWN) {} + CPDF_PageNode(); ~CPDF_PageNode(); + PDF_PAGENODE_TYPE m_type; FX_DWORD m_dwPageNo; CFX_ArrayTemplate<CPDF_PageNode*> m_childNode; }; + enum PDF_DATAAVAIL_STATUS { PDF_DATAAVAIL_HEADER = 0, PDF_DATAAVAIL_FIRSTPAGE, diff --git a/core/include/fpdfapi/fpdf_resource.h b/core/include/fpdfapi/fpdf_resource.h index 450e878fa1..6bae2ac469 100644 --- a/core/include/fpdfapi/fpdf_resource.h +++ b/core/include/fpdfapi/fpdf_resource.h @@ -102,39 +102,37 @@ class CPDF_Font { virtual ~CPDF_Font(); - virtual bool IsType1Font() const { return false; } - virtual bool IsTrueTypeFont() const { return false; } - virtual bool IsType3Font() const { return false; } - virtual bool IsCIDFont() const { return false; } - virtual const CPDF_Type1Font* AsType1Font() const { return nullptr; } - virtual CPDF_Type1Font* AsType1Font() { return nullptr; } - virtual const CPDF_TrueTypeFont* AsTrueTypeFont() const { return nullptr; } - virtual CPDF_TrueTypeFont* AsTrueTypeFont() { return nullptr; } - virtual const CPDF_Type3Font* AsType3Font() const { return nullptr; } - virtual CPDF_Type3Font* AsType3Font() { return nullptr; } - virtual const CPDF_CIDFont* AsCIDFont() const { return nullptr; } - virtual CPDF_CIDFont* AsCIDFont() { return nullptr; } + virtual bool IsType1Font() const; + virtual bool IsTrueTypeFont() const; + virtual bool IsType3Font() const; + virtual bool IsCIDFont() const; + virtual const CPDF_Type1Font* AsType1Font() const; + virtual CPDF_Type1Font* AsType1Font(); + virtual const CPDF_TrueTypeFont* AsTrueTypeFont() const; + virtual CPDF_TrueTypeFont* AsTrueTypeFont(); + virtual const CPDF_Type3Font* AsType3Font() const; + virtual CPDF_Type3Font* AsType3Font(); + virtual const CPDF_CIDFont* AsCIDFont() const; + virtual CPDF_CIDFont* AsCIDFont(); virtual FX_BOOL IsVertWriting() const; - virtual FX_BOOL IsUnicodeCompatible() const { return FALSE; } + virtual FX_BOOL IsUnicodeCompatible() const; virtual FX_DWORD GetNextChar(const FX_CHAR* pString, int nStrLen, int& offset) const; - virtual int CountChar(const FX_CHAR* pString, int size) const { return size; } + virtual int CountChar(const FX_CHAR* pString, int size) const; virtual int AppendChar(FX_CHAR* buf, FX_DWORD charcode) const; - virtual int GetCharSize(FX_DWORD charcode) const { return 1; } + virtual int GetCharSize(FX_DWORD charcode) const; virtual int GlyphFromCharCode(FX_DWORD charcode, - FX_BOOL* pVertGlyph = NULL) = 0; - virtual int GlyphFromCharCodeExt(FX_DWORD charcode) { - return GlyphFromCharCode(charcode); - } + FX_BOOL* pVertGlyph = nullptr); + virtual int GlyphFromCharCodeExt(FX_DWORD charcode); virtual CFX_WideString UnicodeFromCharCode(FX_DWORD charcode) const; virtual FX_DWORD CharCodeFromUnicode(FX_WCHAR Unicode) const; const CFX_ByteString& GetBaseFont() const { return m_BaseFont; } const CFX_SubstFont* GetSubstFont() const { return m_Font.GetSubstFont(); } FX_DWORD GetFlags() const { return m_Flags; } - FX_BOOL IsEmbedded() const { return IsType3Font() || m_pFontFile != NULL; } + FX_BOOL IsEmbedded() const { return IsType3Font() || m_pFontFile != nullptr; } CPDF_StreamAcc* GetFontFile() const { return m_pFontFile; } CPDF_Dictionary* GetFontDict() const { return m_pFontDict; } FX_BOOL IsStandardFont() const; @@ -257,9 +255,9 @@ class CPDF_Type1Font : public CPDF_SimpleFont { CPDF_Type1Font(); // CPDF_Font: - bool IsType1Font() const override { return true; } - const CPDF_Type1Font* AsType1Font() const override { return this; } - CPDF_Type1Font* AsType1Font() override { return this; } + bool IsType1Font() const override; + const CPDF_Type1Font* AsType1Font() const override; + CPDF_Type1Font* AsType1Font() override; int GlyphFromCharCodeExt(FX_DWORD charcode) override; int GetBase14Font() const { return m_Base14Font; } @@ -279,9 +277,9 @@ class CPDF_TrueTypeFont : public CPDF_SimpleFont { CPDF_TrueTypeFont(); // CPDF_Font: - bool IsTrueTypeFont() const override { return true; } - const CPDF_TrueTypeFont* AsTrueTypeFont() const override { return this; } - CPDF_TrueTypeFont* AsTrueTypeFont() override { return this; } + bool IsTrueTypeFont() const override; + const CPDF_TrueTypeFont* AsTrueTypeFont() const override; + CPDF_TrueTypeFont* AsTrueTypeFont() override; protected: // CPDF_Font: @@ -313,9 +311,9 @@ class CPDF_Type3Font : public CPDF_SimpleFont { ~CPDF_Type3Font() override; // CPDF_Font: - bool IsType3Font() const override { return true; } - const CPDF_Type3Font* AsType3Font() const override { return this; } - CPDF_Type3Font* AsType3Font() override { return this; } + bool IsType3Font() const override; + const CPDF_Type3Font* AsType3Font() const override; + CPDF_Type3Font* AsType3Font() override; int GetCharWidthF(FX_DWORD charcode, int level = 0) override; FX_RECT GetCharBBox(FX_DWORD charcode, int level = 0) override; @@ -362,9 +360,9 @@ class CPDF_CIDFont : public CPDF_Font { static FX_FLOAT CIDTransformToFloat(uint8_t ch); // CPDF_Font: - bool IsCIDFont() const override { return true; } - const CPDF_CIDFont* AsCIDFont() const override { return this; } - CPDF_CIDFont* AsCIDFont() override { return this; } + bool IsCIDFont() const override; + const CPDF_CIDFont* AsCIDFont() const override; + CPDF_CIDFont* AsCIDFont() override; int GlyphFromCharCode(FX_DWORD charcode, FX_BOOL* pVertGlyph = NULL) override; int GetCharWidthF(FX_DWORD charcode, int level = 0) override; FX_RECT GetCharBBox(FX_DWORD charcode, int level = 0) override; @@ -434,15 +432,10 @@ class CPDF_ColorSpace { void ReleaseCS(); int GetBufSize() const; - FX_FLOAT* CreateBuf(); - void GetDefaultColor(FX_FLOAT* buf) const; - int CountComponents() const { return m_nComponents; } - int GetFamily() const { return m_Family; } - virtual void GetDefaultValue(int iComponent, FX_FLOAT& value, FX_FLOAT& min, @@ -453,12 +446,10 @@ class CPDF_ColorSpace { } FX_BOOL sRGB() const; - virtual FX_BOOL GetRGB(FX_FLOAT* pBuf, FX_FLOAT& R, FX_FLOAT& G, FX_FLOAT& B) const = 0; - virtual FX_BOOL SetRGB(FX_FLOAT* pBuf, FX_FLOAT R, FX_FLOAT G, @@ -471,7 +462,6 @@ class CPDF_ColorSpace { FX_FLOAT& m, FX_FLOAT& y, FX_FLOAT& k) const; - FX_BOOL SetCMYK(FX_FLOAT* pBuf, FX_FLOAT c, FX_FLOAT m, @@ -486,9 +476,7 @@ class CPDF_ColorSpace { FX_BOOL bTransMask = FALSE) const; CPDF_Array*& GetArray() { return m_pArray; } - int GetMaxIndex() const; - virtual CPDF_ColorSpace* GetBaseCS() const { return NULL; } virtual void EnableStdConversion(FX_BOOL bEnabled); diff --git a/core/include/fxcrt/fx_basic.h b/core/include/fxcrt/fx_basic.h index 006b2b377d..11c573be6e 100644 --- a/core/include/fxcrt/fx_basic.h +++ b/core/include/fxcrt/fx_basic.h @@ -45,6 +45,7 @@ class CFX_BinaryBuf { public: CFX_BinaryBuf(); explicit CFX_BinaryBuf(FX_STRSIZE size); + ~CFX_BinaryBuf(); uint8_t* GetBuffer() const { return m_pBuffer.get(); } FX_STRSIZE GetSize() const { return m_DataSize; } @@ -182,6 +183,7 @@ class CFX_ArchiveLoader { class CFX_FileBufferArchive { public: CFX_FileBufferArchive(); + ~CFX_FileBufferArchive(); void Clear(); bool Flush(); @@ -694,13 +696,12 @@ class CFX_MapPtrTemplate : public CFX_MapPtrToPtr { } }; #endif // PDF_ENABLE_XFA + class CFX_PtrList { protected: struct CNode { CNode* pNext; - CNode* pPrev; - void* data; }; @@ -708,7 +709,6 @@ class CFX_PtrList { CFX_PtrList(int nBlockSize = 10); FX_POSITION GetHeadPosition() const { return (FX_POSITION)m_pNodeHead; } - FX_POSITION GetTailPosition() const { return (FX_POSITION)m_pNodeTail; } void* GetNext(FX_POSITION& rPosition) const { @@ -737,60 +737,49 @@ class CFX_PtrList { } int GetCount() const { return m_nCount; } - FX_POSITION AddTail(void* newElement); - FX_POSITION AddHead(void* newElement); void SetAt(FX_POSITION pos, void* newElement) { CNode* pNode = (CNode*)pos; pNode->data = newElement; } - FX_POSITION InsertAfter(FX_POSITION pos, void* newElement); FX_POSITION Find(void* searchValue, FX_POSITION startAfter = NULL) const; - FX_POSITION FindIndex(int index) const; void RemoveAt(FX_POSITION pos); - void RemoveAll(); protected: CNode* m_pNodeHead; - CNode* m_pNodeTail; - int m_nCount; - CNode* m_pNodeFree; - struct CFX_Plex* m_pBlocks; - int m_nBlockSize; CNode* NewNode(CNode* pPrev, CNode* pNext); - void FreeNode(CNode* pNode); public: ~CFX_PtrList(); }; typedef void (*PD_CALLBACK_FREEDATA)(void* pData); + struct FX_PRIVATEDATA { void FreeData(); void* m_pModuleId; - void* m_pData; - PD_CALLBACK_FREEDATA m_pCallback; - FX_BOOL m_bSelfDestruct; }; + class CFX_PrivateData { public: + CFX_PrivateData(); ~CFX_PrivateData(); void ClearAll(); @@ -798,11 +787,9 @@ class CFX_PrivateData { void SetPrivateData(void* module_id, void* pData, PD_CALLBACK_FREEDATA callback); - void SetPrivateObj(void* module_id, CFX_DestructObject* pObj); void* GetPrivateData(void* module_id); - FX_BOOL LookupPrivateData(void* module_id, void*& pData) const { if (!module_id) { return FALSE; @@ -827,6 +814,7 @@ class CFX_PrivateData { PD_CALLBACK_FREEDATA callback, FX_BOOL bSelfDestruct); }; + class CFX_BitStream { public: void Init(const uint8_t* pData, FX_DWORD dwSize); diff --git a/core/include/fxcrt/fx_stream.h b/core/include/fxcrt/fx_stream.h index 4e2f0f97ce..d15d286031 100644 --- a/core/include/fxcrt/fx_stream.h +++ b/core/include/fxcrt/fx_stream.h @@ -20,20 +20,25 @@ FX_BOOL FX_GetNextFile(void* handle, FX_BOOL& bFolder); void FX_CloseFolder(void* handle); FX_WCHAR FX_GetFolderSeparator(); + #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ #define FX_FILESIZE int32_t #else #include <fcntl.h> #include <sys/stat.h> #include <unistd.h> + #ifndef O_BINARY #define O_BINARY 0 -#endif +#endif // O_BINARY + #ifndef O_LARGEFILE #define O_LARGEFILE 0 -#endif +#endif // O_LARGEFILE + #define FX_FILESIZE off_t -#endif +#endif // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ + #define FX_GETBYTEOFFSET32(a) 0 #define FX_GETBYTEOFFSET40(a) 0 #define FX_GETBYTEOFFSET48(a) 0 @@ -56,10 +61,7 @@ class IFX_StreamWrite { class IFX_FileWrite : public IFX_StreamWrite { public: // IFX_StreamWrite: - FX_BOOL WriteBlock(const void* pData, size_t size) override { - return WriteBlock(pData, GetSize(), size); - } - + FX_BOOL WriteBlock(const void* pData, size_t size) override; virtual FX_FILESIZE GetSize() = 0; virtual FX_BOOL Flush() = 0; virtual FX_BOOL WriteBlock(const void* pData, @@ -81,9 +83,9 @@ class IFX_FileRead : IFX_StreamRead { public: // IFX_StreamRead: void Release() override = 0; - FX_BOOL IsEOF() override { return FALSE; } - FX_FILESIZE GetPosition() override { return 0; } - size_t ReadBlock(void* buffer, size_t size) override { return 0; } + FX_BOOL IsEOF() override; + FX_FILESIZE GetPosition() override; + size_t ReadBlock(void* buffer, size_t size) override; virtual FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) = 0; virtual FX_FILESIZE GetSize() = 0; @@ -108,9 +110,7 @@ class IFX_FileStream : public IFX_FileRead, public IFX_FileWrite { FX_BOOL WriteBlock(const void* buffer, FX_FILESIZE offset, size_t size) override = 0; - FX_BOOL WriteBlock(const void* buffer, size_t size) override { - return WriteBlock(buffer, GetSize(), size); - } + FX_BOOL WriteBlock(const void* buffer, size_t size) override; FX_BOOL Flush() override = 0; }; @@ -132,21 +132,19 @@ IFX_FileAccess* FX_CreateDefaultFileAccess(const CFX_WideStringC& wsPath); class IFX_MemoryStream : public IFX_FileStream { public: virtual FX_BOOL IsConsecutive() const = 0; - virtual void EstimateSize(size_t nInitSize, size_t nGrowSize) = 0; - virtual uint8_t* GetBuffer() const = 0; - virtual void AttachBuffer(uint8_t* pBuffer, size_t nSize, FX_BOOL bTakeOver = FALSE) = 0; - virtual void DetachBuffer() = 0; }; + IFX_MemoryStream* FX_CreateMemoryStream(uint8_t* pBuffer, size_t nSize, FX_BOOL bTakeOver = FALSE); IFX_MemoryStream* FX_CreateMemoryStream(FX_BOOL bConsecutive = FALSE); + class IFX_BufferRead : public IFX_StreamRead { public: // IFX_StreamRead: diff --git a/core/include/fxge/fx_dib.h b/core/include/fxge/fx_dib.h index e39bad2b87..43746e5d48 100644 --- a/core/include/fxge/fx_dib.h +++ b/core/include/fxge/fx_dib.h @@ -160,30 +160,23 @@ FX_ARGB ArgbEncode(int a, FX_COLORREF rgb); #define FXSETFLAG_ALPHA_FILL(flag, val) flag = ((val) | (flag & 0xffffff00)) #define FXSETFLAG_ALPHA_STROKE(flag, val) \ flag = (((val) << 16) | (flag & 0xff00ffff)) + class CFX_DIBSource { public: virtual ~CFX_DIBSource(); int GetWidth() const { return m_Width; } - int GetHeight() const { return m_Height; } FXDIB_Format GetFormat() const { return (FXDIB_Format)(m_AlphaFlag * 0x100 + m_bpp); } - FX_DWORD GetPitch() const { return m_Pitch; } - FX_DWORD* GetPalette() const { return m_pPalette; } - virtual uint8_t* GetBuffer() const { return NULL; } - + virtual uint8_t* GetBuffer() const; virtual const uint8_t* GetScanline(int line) const = 0; - - virtual FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) const { - return FALSE; - } - + virtual FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) const; virtual void DownSampleScanline(int line, uint8_t* dest_scan, int dest_bpp, @@ -191,7 +184,6 @@ class CFX_DIBSource { FX_BOOL bFlipX, int clip_left, int clip_width) const = 0; - virtual void SetDownSampleSize(int width, int height) {} int GetBPP() const { return m_bpp; } @@ -219,7 +211,6 @@ class CFX_DIBSource { void CopyPalette(const FX_DWORD* pSrcPal, FX_DWORD size = 256); CFX_DIBitmap* Clone(const FX_RECT* pClip = NULL) const; - CFX_DIBitmap* CloneConvert(FXDIB_Format format, const FX_RECT* pClip = NULL, void* pIccTransform = NULL) const; @@ -228,7 +219,6 @@ class CFX_DIBSource { int dest_height, FX_DWORD flags = 0, const FX_RECT* pClip = NULL) const; - CFX_DIBitmap* TransformTo(const CFX_Matrix* pMatrix, int& left, int& top, @@ -236,7 +226,6 @@ class CFX_DIBSource { const FX_RECT* pClip = NULL) const; CFX_DIBitmap* GetAlphaMask(const FX_RECT* pClip = NULL) const; - FX_BOOL CopyAlphaMask(const CFX_DIBSource* pAlphaMask, const FX_RECT* pClip = NULL); @@ -262,23 +251,15 @@ class CFX_DIBSource { CFX_DIBSource(); int m_Width; - int m_Height; - int m_bpp; - FX_DWORD m_AlphaFlag; - FX_DWORD m_Pitch; - FX_DWORD* m_pPalette; void BuildPalette(); - FX_BOOL BuildAlphaMask(); - int FindPalette(FX_DWORD color) const; - void GetPalette(FX_DWORD* pal, int alpha) const; }; class CFX_DIBitmap : public CFX_DIBSource { @@ -296,10 +277,8 @@ class CFX_DIBitmap : public CFX_DIBSource { FX_BOOL Copy(const CFX_DIBSource* pSrc); // CFX_DIBSource - uint8_t* GetBuffer() const override { return m_pBuffer; } - const uint8_t* GetScanline(int line) const override { - return m_pBuffer ? m_pBuffer + line * m_Pitch : NULL; - } + uint8_t* GetBuffer() const override; + const uint8_t* GetScanline(int line) const override; void DownSampleScanline(int line, uint8_t* dest_scan, int dest_bpp, diff --git a/core/include/fxge/fx_font.h b/core/include/fxge/fx_font.h index 67ca1a7f4e..2902145594 100644 --- a/core/include/fxge/fx_font.h +++ b/core/include/fxge/fx_font.h @@ -365,14 +365,14 @@ class IFX_SystemFontInfo { int pitch_family, const FX_CHAR* face, int& iExact) = 0; + #ifdef PDF_ENABLE_XFA virtual void* MapFontByUnicode(FX_DWORD dwUnicode, int weight, FX_BOOL bItalic, - int pitch_family) { - return NULL; - } + int pitch_family); #endif // PDF_ENABLE_XFA + virtual void* GetFont(const FX_CHAR* face) = 0; virtual FX_DWORD GetFontData(void* hFont, FX_DWORD table, @@ -380,9 +380,9 @@ class IFX_SystemFontInfo { FX_DWORD size) = 0; virtual FX_BOOL GetFaceName(void* hFont, CFX_ByteString& name) = 0; virtual FX_BOOL GetFontCharset(void* hFont, int& charset) = 0; - virtual int GetFaceIndex(void* hFont) { return 0; } + virtual int GetFaceIndex(void* hFont); virtual void DeleteFont(void* hFont) = 0; - virtual void* RetainFont(void* hFont) { return NULL; } + virtual void* RetainFont(void* hFont); protected: virtual ~IFX_SystemFontInfo() {} @@ -446,6 +446,7 @@ class CFX_CountedFaceCache { class CFX_FontCache { public: + CFX_FontCache(); ~CFX_FontCache(); CFX_FaceCache* GetCachedFace(CFX_Font* pFont); void ReleaseCachedFace(CFX_Font* pFont); @@ -456,6 +457,7 @@ class CFX_FontCache { CFX_FTCacheMap m_FTFaceMap; CFX_FTCacheMap m_ExtFaceMap; }; + class CFX_AutoFontCache { public: CFX_AutoFontCache(CFX_FontCache* pFontCache, CFX_Font* pFont) |