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 d6b314d853dae178c20bfffde75646317843a3f1..733e24cbcf58c79aa4c0b4b83cfe3e85bd9875e0 100644 |
--- a/core/src/fpdfapi/fpdf_render/render_int.h |
+++ b/core/src/fpdfapi/fpdf_render/render_int.h |
@@ -87,7 +87,9 @@ struct _PDF_RenderItem { |
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); |
@@ -100,6 +102,7 @@ class IPDF_ObjectRenderer { |
virtual FX_BOOL Continue(IFX_Pause* pPause) = 0; |
FX_BOOL m_Result; |
}; |
+ |
class CPDF_RenderStatus { |
public: |
CPDF_RenderStatus(); |
@@ -319,15 +322,20 @@ class CPDF_ProgressiveImageLoaderHandle { |
int32_t m_nDownsampleHeight; |
}; |
class CFX_ImageTransformer; |
+ |
class CPDF_ImageRenderer : public IPDF_ObjectRenderer { |
public: |
CPDF_ImageRenderer(); |
- ~CPDF_ImageRenderer(); |
+ ~CPDF_ImageRenderer() override; |
+ |
+ // IPDF_ObjectRenderer |
FX_BOOL Start(CPDF_RenderStatus* pStatus, |
const CPDF_PageObject* pObj, |
const CFX_AffineMatrix* pObj2Device, |
FX_BOOL bStdCS, |
- int blendType = FXDIB_BLEND_NORMAL); |
+ int blendType = FXDIB_BLEND_NORMAL) override; |
+ FX_BOOL Continue(IFX_Pause* pPause) override; |
+ |
FX_BOOL Start(CPDF_RenderStatus* pStatus, |
const CFX_DIBSource* pDIBSource, |
FX_ARGB bitmap_argb, |
@@ -336,7 +344,6 @@ class CPDF_ImageRenderer : public IPDF_ObjectRenderer { |
FX_DWORD flags, |
FX_BOOL bStdCS, |
int blendType = FXDIB_BLEND_NORMAL); |
- FX_BOOL Continue(IFX_Pause* pPause); |
protected: |
CPDF_RenderStatus* m_pRenderStatus; |
@@ -365,6 +372,7 @@ class CPDF_ImageRenderer : public IPDF_ObjectRenderer { |
FX_BOOL DrawMaskedImage(); |
FX_BOOL DrawPatternImage(const CFX_Matrix* pObj2Device); |
}; |
+ |
class CPDF_ScaledRenderBuffer { |
public: |
CPDF_ScaledRenderBuffer(); |
@@ -483,10 +491,12 @@ typedef struct { |
int m_ColorKeyMin; |
int m_ColorKeyMax; |
} DIB_COMP_DATA; |
+ |
class CPDF_DIBSource : public CFX_DIBSource { |
public: |
CPDF_DIBSource(); |
- virtual ~CPDF_DIBSource(); |
+ ~CPDF_DIBSource() override; |
+ |
FX_BOOL Load(CPDF_Document* pDoc, |
const CPDF_Stream* pStream, |
CPDF_DIBSource** ppMask, |
@@ -496,17 +506,20 @@ class CPDF_DIBSource : public CFX_DIBSource { |
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_DIBSource |
+ FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) const override; |
+ uint8_t* GetBuffer() const override; |
+ const uint8_t* GetScanline(int line) const override; |
+ void DownSampleScanline(int line, |
+ uint8_t* dest_scan, |
+ int dest_bpp, |
+ int dest_width, |
+ FX_BOOL bFlipX, |
+ int clip_left, |
+ int clip_width) const override; |
+ void SetDownSampleSize(int dest_width, int dest_height) const override; |
+ |
CFX_DIBitmap* GetBitmap() const; |
void ReleaseBitmap(CFX_DIBitmap*) const; |
void ClearImageData(); |
@@ -569,22 +582,28 @@ class CPDF_DIBSource : public CFX_DIBSource { |
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; |
+ ~CPDF_DIBTransferFunc() override; |
+ |
+ // CFX_FilteredDIB |
+ FXDIB_Format GetDestFormat() override; |
+ FX_ARGB* GetDestPalette() override { return NULL; } |
+ void TranslateScanline(uint8_t* dest_buf, |
+ const uint8_t* src_buf) const override; |
+ void TranslateDownSamples(uint8_t* dest_buf, |
+ const uint8_t* src_buf, |
+ int pixels, |
+ int Bpp) const override; |
+ |
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]; |