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_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ | 7 #ifndef CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ |
8 #define CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ | 8 #define CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ |
9 | 9 |
10 #include <map> | 10 #include <map> |
11 | 11 |
12 #include "../../../../third_party/base/nonstd_unique_ptr.h" | 12 #include "../../../../third_party/base/nonstd_unique_ptr.h" |
13 #include "../../../include/fpdfapi/fpdf_pageobj.h" | 13 #include "../../../include/fpdfapi/fpdf_pageobj.h" |
14 | 14 |
| 15 class CFX_GlyphBitmap; |
15 class CPDF_QuickStretcher; | 16 class CPDF_QuickStretcher; |
| 17 |
16 #define TYPE3_MAX_BLUES 16 | 18 #define TYPE3_MAX_BLUES 16 |
| 19 |
17 class CPDF_Type3Glyphs { | 20 class CPDF_Type3Glyphs { |
18 public: | 21 public: |
19 CPDF_Type3Glyphs() { | 22 CPDF_Type3Glyphs() { |
20 m_GlyphMap.InitHashTable(253); | 23 m_GlyphMap.InitHashTable(253); |
21 m_TopBlueCount = m_BottomBlueCount = 0; | 24 m_TopBlueCount = m_BottomBlueCount = 0; |
22 } | 25 } |
23 ~CPDF_Type3Glyphs(); | 26 ~CPDF_Type3Glyphs(); |
24 CFX_MapPtrToPtr m_GlyphMap; | 27 CFX_MapPtrToPtr m_GlyphMap; |
25 void AdjustBlue(FX_FLOAT top, | 28 void AdjustBlue(FX_FLOAT top, |
26 FX_FLOAT bottom, | 29 FX_FLOAT bottom, |
27 int& top_line, | 30 int& top_line, |
28 int& bottom_line); | 31 int& bottom_line); |
29 | 32 |
30 int m_TopBlue[TYPE3_MAX_BLUES], m_BottomBlue[TYPE3_MAX_BLUES]; | 33 int m_TopBlue[TYPE3_MAX_BLUES], m_BottomBlue[TYPE3_MAX_BLUES]; |
31 int m_TopBlueCount, m_BottomBlueCount; | 34 int m_TopBlueCount, m_BottomBlueCount; |
32 }; | 35 }; |
33 class CFX_GlyphBitmap; | |
34 class CPDF_Type3Cache { | 36 class CPDF_Type3Cache { |
35 public: | 37 public: |
36 CPDF_Type3Cache(CPDF_Type3Font* pFont) { m_pFont = pFont; } | 38 explicit CPDF_Type3Cache(CPDF_Type3Font* pFont) : m_pFont(pFont) {} |
37 ~CPDF_Type3Cache(); | 39 ~CPDF_Type3Cache(); |
| 40 |
38 CFX_GlyphBitmap* LoadGlyph(FX_DWORD charcode, | 41 CFX_GlyphBitmap* LoadGlyph(FX_DWORD charcode, |
39 const CFX_AffineMatrix* pMatrix, | 42 const CFX_AffineMatrix* pMatrix, |
40 FX_FLOAT retinaScaleX = 1.0f, | 43 FX_FLOAT retinaScaleX = 1.0f, |
41 FX_FLOAT retinaScaleY = 1.0f); | 44 FX_FLOAT retinaScaleY = 1.0f); |
42 | 45 |
43 protected: | 46 protected: |
44 CFX_GlyphBitmap* RenderGlyph(CPDF_Type3Glyphs* pSize, | 47 CFX_GlyphBitmap* RenderGlyph(CPDF_Type3Glyphs* pSize, |
45 FX_DWORD charcode, | 48 FX_DWORD charcode, |
46 const CFX_AffineMatrix* pMatrix, | 49 const CFX_AffineMatrix* pMatrix, |
47 FX_FLOAT retinaScaleX = 1.0f, | 50 FX_FLOAT retinaScaleX = 1.0f, |
48 FX_FLOAT retinaScaleY = 1.0f); | 51 FX_FLOAT retinaScaleY = 1.0f); |
49 CPDF_Type3Font* m_pFont; | 52 CPDF_Type3Font* const m_pFont; |
50 CFX_MapByteStringToPtr m_SizeMap; | 53 std::map<CFX_ByteString, CPDF_Type3Glyphs*> m_SizeMap; |
51 }; | 54 }; |
52 class CPDF_TransferFunc { | 55 class CPDF_TransferFunc { |
53 public: | 56 public: |
54 CPDF_Document* m_pPDFDoc; | 57 CPDF_Document* m_pPDFDoc; |
55 uint8_t m_Samples[256 * 3]; | 58 uint8_t m_Samples[256 * 3]; |
56 FX_BOOL m_bIdentity; | 59 FX_BOOL m_bIdentity; |
57 | 60 |
58 CFX_DIBSource* TranslateImage(const CFX_DIBSource* pSrc, | 61 CFX_DIBSource* TranslateImage(const CFX_DIBSource* pSrc, |
59 FX_BOOL bAutoDropSrc); | 62 FX_BOOL bAutoDropSrc); |
60 FX_COLORREF TranslateColor(FX_COLORREF src); | 63 FX_COLORREF TranslateColor(FX_COLORREF src); |
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 const uint8_t* m_RampB; | 607 const uint8_t* m_RampB; |
605 }; | 608 }; |
606 | 609 |
607 struct _CPDF_UniqueKeyGen { | 610 struct _CPDF_UniqueKeyGen { |
608 void Generate(int count, ...); | 611 void Generate(int count, ...); |
609 FX_CHAR m_Key[128]; | 612 FX_CHAR m_Key[128]; |
610 int m_KeyLen; | 613 int m_KeyLen; |
611 }; | 614 }; |
612 | 615 |
613 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ | 616 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ |
OLD | NEW |