| Index: core/fpdfapi/fpdf_page/pageint.h
|
| diff --git a/core/fpdfapi/fpdf_page/pageint.h b/core/fpdfapi/fpdf_page/pageint.h
|
| index d254477dc337fa094c0c86e5f8f4369fcdc0b0f3..297b1e2e7721fa715d37d464ebdf66753c8719b9 100644
|
| --- a/core/fpdfapi/fpdf_page/pageint.h
|
| +++ b/core/fpdfapi/fpdf_page/pageint.h
|
| @@ -377,24 +377,68 @@ class CPDF_DocPageData {
|
|
|
| class CPDF_Function {
|
| public:
|
| + enum class Type {
|
| + kType0Sampled,
|
| + kType2ExpotentialInterpolation,
|
| + kType3Stitching,
|
| + kType4PostScript,
|
| + };
|
| +
|
| static CPDF_Function* Load(CPDF_Object* pFuncObj);
|
| virtual ~CPDF_Function();
|
| FX_BOOL Call(FX_FLOAT* inputs,
|
| int ninputs,
|
| FX_FLOAT* results,
|
| int& nresults) const;
|
| - int CountInputs() { return m_nInputs; }
|
| - int CountOutputs() { return m_nOutputs; }
|
| + int CountInputs() const { return m_nInputs; }
|
| + int CountOutputs() const { return m_nOutputs; }
|
| + FX_FLOAT GetDomain(int i) const { return m_pDomains[i]; }
|
| + Type GetType() const { return m_Type; }
|
|
|
| protected:
|
| - CPDF_Function();
|
| - int m_nInputs, m_nOutputs;
|
| - FX_FLOAT* m_pDomains;
|
| - FX_FLOAT* m_pRanges;
|
| + CPDF_Function(Type type);
|
| FX_BOOL Init(CPDF_Object* pObj);
|
| virtual FX_BOOL v_Init(CPDF_Object* pObj) = 0;
|
| virtual FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const = 0;
|
| +
|
| + int m_nInputs;
|
| + int m_nOutputs;
|
| + FX_FLOAT* m_pDomains;
|
| + FX_FLOAT* m_pRanges;
|
| + Type m_Type;
|
| +};
|
| +
|
| +class CPDF_ExpIntFunc : public CPDF_Function {
|
| + public:
|
| + CPDF_ExpIntFunc();
|
| + ~CPDF_ExpIntFunc() override;
|
| +
|
| + // CPDF_Function
|
| + FX_BOOL v_Init(CPDF_Object* pObj) override;
|
| + FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const override;
|
| +
|
| + int m_nOrigOutputs;
|
| + FX_FLOAT m_Exponent;
|
| + FX_FLOAT* m_pBeginValues;
|
| + FX_FLOAT* m_pEndValues;
|
| +};
|
| +
|
| +class CPDF_StitchFunc : public CPDF_Function {
|
| + public:
|
| + CPDF_StitchFunc();
|
| + ~CPDF_StitchFunc() override;
|
| +
|
| + // CPDF_Function
|
| + FX_BOOL v_Init(CPDF_Object* pObj) override;
|
| + FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const override;
|
| +
|
| + std::vector<CPDF_Function*> m_pSubFunctions;
|
| + FX_FLOAT* m_pBounds;
|
| + FX_FLOAT* m_pEncode;
|
| +
|
| + static const int kRequiredNumInputs = 1;
|
| };
|
| +
|
| class CPDF_IccProfile {
|
| public:
|
| CPDF_IccProfile(const uint8_t* pData, FX_DWORD dwSize);
|
|
|