OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_ | 7 #ifndef CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_ |
8 #define CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_ | 8 #define CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_ |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 CPDF_ColorSpaceMap m_ColorSpaceMap; | 370 CPDF_ColorSpaceMap m_ColorSpaceMap; |
371 CPDF_FontFileMap m_FontFileMap; | 371 CPDF_FontFileMap m_FontFileMap; |
372 CPDF_FontMap m_FontMap; | 372 CPDF_FontMap m_FontMap; |
373 CPDF_IccProfileMap m_IccProfileMap; | 373 CPDF_IccProfileMap m_IccProfileMap; |
374 CPDF_ImageMap m_ImageMap; | 374 CPDF_ImageMap m_ImageMap; |
375 CPDF_PatternMap m_PatternMap; | 375 CPDF_PatternMap m_PatternMap; |
376 }; | 376 }; |
377 | 377 |
378 class CPDF_Function { | 378 class CPDF_Function { |
379 public: | 379 public: |
| 380 enum class Type { |
| 381 kType0Sampled, |
| 382 kType2ExpotentialInterpolation, |
| 383 kType3Stitching, |
| 384 kType4PostScript, |
| 385 }; |
| 386 |
380 static CPDF_Function* Load(CPDF_Object* pFuncObj); | 387 static CPDF_Function* Load(CPDF_Object* pFuncObj); |
381 virtual ~CPDF_Function(); | 388 virtual ~CPDF_Function(); |
382 FX_BOOL Call(FX_FLOAT* inputs, | 389 FX_BOOL Call(FX_FLOAT* inputs, |
383 int ninputs, | 390 int ninputs, |
384 FX_FLOAT* results, | 391 FX_FLOAT* results, |
385 int& nresults) const; | 392 int& nresults) const; |
386 int CountInputs() { return m_nInputs; } | 393 int CountInputs() const { return m_nInputs; } |
387 int CountOutputs() { return m_nOutputs; } | 394 int CountOutputs() const { return m_nOutputs; } |
| 395 FX_FLOAT GetDomain(int i) const { return m_pDomains[i]; } |
| 396 Type GetType() const { return m_Type; } |
388 | 397 |
389 protected: | 398 protected: |
390 CPDF_Function(); | 399 CPDF_Function(Type type); |
391 int m_nInputs, m_nOutputs; | |
392 FX_FLOAT* m_pDomains; | |
393 FX_FLOAT* m_pRanges; | |
394 FX_BOOL Init(CPDF_Object* pObj); | 400 FX_BOOL Init(CPDF_Object* pObj); |
395 virtual FX_BOOL v_Init(CPDF_Object* pObj) = 0; | 401 virtual FX_BOOL v_Init(CPDF_Object* pObj) = 0; |
396 virtual FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const = 0; | 402 virtual FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const = 0; |
| 403 |
| 404 int m_nInputs; |
| 405 int m_nOutputs; |
| 406 FX_FLOAT* m_pDomains; |
| 407 FX_FLOAT* m_pRanges; |
| 408 Type m_Type; |
397 }; | 409 }; |
| 410 |
| 411 class CPDF_ExpIntFunc : public CPDF_Function { |
| 412 public: |
| 413 CPDF_ExpIntFunc(); |
| 414 ~CPDF_ExpIntFunc() override; |
| 415 |
| 416 // CPDF_Function |
| 417 FX_BOOL v_Init(CPDF_Object* pObj) override; |
| 418 FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const override; |
| 419 |
| 420 int m_nOrigOutputs; |
| 421 FX_FLOAT m_Exponent; |
| 422 FX_FLOAT* m_pBeginValues; |
| 423 FX_FLOAT* m_pEndValues; |
| 424 }; |
| 425 |
| 426 class CPDF_StitchFunc : public CPDF_Function { |
| 427 public: |
| 428 CPDF_StitchFunc(); |
| 429 ~CPDF_StitchFunc() override; |
| 430 |
| 431 // CPDF_Function |
| 432 FX_BOOL v_Init(CPDF_Object* pObj) override; |
| 433 FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const override; |
| 434 |
| 435 std::vector<CPDF_Function*> m_pSubFunctions; |
| 436 FX_FLOAT* m_pBounds; |
| 437 FX_FLOAT* m_pEncode; |
| 438 |
| 439 static const int kRequiredNumInputs = 1; |
| 440 }; |
| 441 |
398 class CPDF_IccProfile { | 442 class CPDF_IccProfile { |
399 public: | 443 public: |
400 CPDF_IccProfile(const uint8_t* pData, FX_DWORD dwSize); | 444 CPDF_IccProfile(const uint8_t* pData, FX_DWORD dwSize); |
401 ~CPDF_IccProfile(); | 445 ~CPDF_IccProfile(); |
402 FX_DWORD GetComponents() const { return m_nSrcComponents; } | 446 FX_DWORD GetComponents() const { return m_nSrcComponents; } |
403 FX_BOOL m_bsRGB; | 447 FX_BOOL m_bsRGB; |
404 void* m_pTransform; | 448 void* m_pTransform; |
405 | 449 |
406 private: | 450 private: |
407 FX_DWORD m_nSrcComponents; | 451 FX_DWORD m_nSrcComponents; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 CPDF_Pattern* m_pPattern; | 502 CPDF_Pattern* m_pPattern; |
459 CPDF_CountedPattern* m_pCountedPattern; | 503 CPDF_CountedPattern* m_pCountedPattern; |
460 int m_nComps; | 504 int m_nComps; |
461 FX_FLOAT m_Comps[MAX_PATTERN_COLORCOMPS]; | 505 FX_FLOAT m_Comps[MAX_PATTERN_COLORCOMPS]; |
462 }; | 506 }; |
463 | 507 |
464 void PDF_ReplaceAbbr(CPDF_Object* pObj); | 508 void PDF_ReplaceAbbr(CPDF_Object* pObj); |
465 bool IsPathOperator(const uint8_t* buf, size_t len); | 509 bool IsPathOperator(const uint8_t* buf, size_t len); |
466 | 510 |
467 #endif // CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_ | 511 #endif // CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_ |
OLD | NEW |