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_FXGE_INCLUDE_FX_GE_H_ | 7 #ifndef CORE_FXGE_INCLUDE_FX_GE_H_ |
8 #define CORE_FXGE_INCLUDE_FX_GE_H_ | 8 #define CORE_FXGE_INCLUDE_FX_GE_H_ |
9 | 9 |
10 #include "core/fxge/include/fx_dib.h" | 10 #include "core/fxge/include/fx_dib.h" |
11 #include "core/fxge/include/fx_font.h" | 11 #include "core/fxge/include/fx_font.h" |
12 | 12 |
| 13 class CCodec_ModuleMgr; |
| 14 class CFX_FaceCache; |
13 class CFX_Font; | 15 class CFX_Font; |
| 16 class CFX_FontCache; |
14 class CFX_FontMgr; | 17 class CFX_FontMgr; |
15 class CFX_FontCache; | |
16 class CFX_FaceCache; | |
17 class CPDF_ShadingPattern; | 18 class CPDF_ShadingPattern; |
| 19 class CPSFont; |
18 class IFX_RenderDeviceDriver; | 20 class IFX_RenderDeviceDriver; |
19 class CCodec_ModuleMgr; | |
20 class SkPictureRecorder; | 21 class SkPictureRecorder; |
21 | 22 |
22 class CFX_GEModule { | 23 class CFX_GEModule { |
23 public: | 24 public: |
24 static void Create(const char** pUserFontPaths); | 25 static void Create(const char** pUserFontPaths); |
25 | |
26 static void Use(CFX_GEModule* pMgr); | 26 static void Use(CFX_GEModule* pMgr); |
27 | |
28 static CFX_GEModule* Get(); | 27 static CFX_GEModule* Get(); |
29 | |
30 static void Destroy(); | 28 static void Destroy(); |
31 | 29 |
32 public: | |
33 CFX_FontCache* GetFontCache(); | 30 CFX_FontCache* GetFontCache(); |
34 CFX_FontMgr* GetFontMgr() { return m_pFontMgr; } | 31 CFX_FontMgr* GetFontMgr() { return m_pFontMgr; } |
35 void SetTextGamma(FX_FLOAT gammaValue); | 32 void SetTextGamma(FX_FLOAT gammaValue); |
36 const uint8_t* GetTextGammaTable(); | 33 const uint8_t* GetTextGammaTable(); |
37 | 34 |
38 void SetCodecModule(CCodec_ModuleMgr* pCodecModule) { | 35 void SetCodecModule(CCodec_ModuleMgr* pCodecModule) { |
39 m_pCodecModule = pCodecModule; | 36 m_pCodecModule = pCodecModule; |
40 } | 37 } |
41 CCodec_ModuleMgr* GetCodecModule() { return m_pCodecModule; } | 38 CCodec_ModuleMgr* GetCodecModule() { return m_pCodecModule; } |
42 FXFT_Library m_FTLibrary; | 39 FXFT_Library m_FTLibrary; |
43 void* GetPlatformData() { return m_pPlatformData; } | 40 void* GetPlatformData() { return m_pPlatformData; } |
44 | 41 |
45 protected: | 42 protected: |
46 explicit CFX_GEModule(const char** pUserFontPaths); | 43 explicit CFX_GEModule(const char** pUserFontPaths); |
| 44 ~CFX_GEModule(); |
47 | 45 |
48 ~CFX_GEModule(); | |
49 void InitPlatform(); | 46 void InitPlatform(); |
50 void DestroyPlatform(); | 47 void DestroyPlatform(); |
51 | 48 |
52 private: | 49 private: |
53 uint8_t m_GammaValue[256]; | 50 uint8_t m_GammaValue[256]; |
54 CFX_FontCache* m_pFontCache; | 51 CFX_FontCache* m_pFontCache; |
55 CFX_FontMgr* m_pFontMgr; | 52 CFX_FontMgr* m_pFontMgr; |
56 CCodec_ModuleMgr* m_pCodecModule; | 53 CCodec_ModuleMgr* m_pCodecModule; |
57 void* m_pPlatformData; | 54 void* m_pPlatformData; |
58 const char** m_pUserFontPaths; | 55 const char** m_pUserFontPaths; |
59 }; | 56 }; |
60 typedef struct { | 57 |
| 58 struct FX_PATHPOINT { |
61 FX_FLOAT m_PointX; | 59 FX_FLOAT m_PointX; |
| 60 FX_FLOAT m_PointY; |
| 61 int m_Flag; |
| 62 }; |
62 | 63 |
63 FX_FLOAT m_PointY; | |
64 | |
65 int m_Flag; | |
66 } FX_PATHPOINT; | |
67 #define FXPT_CLOSEFIGURE 0x01 | 64 #define FXPT_CLOSEFIGURE 0x01 |
68 #define FXPT_LINETO 0x02 | 65 #define FXPT_LINETO 0x02 |
69 #define FXPT_BEZIERTO 0x04 | 66 #define FXPT_BEZIERTO 0x04 |
70 #define FXPT_MOVETO 0x06 | 67 #define FXPT_MOVETO 0x06 |
71 #define FXPT_TYPE 0x06 | 68 #define FXPT_TYPE 0x06 |
72 #define FXFILL_ALTERNATE 1 | 69 #define FXFILL_ALTERNATE 1 |
73 #define FXFILL_WINDING 2 | 70 #define FXFILL_WINDING 2 |
| 71 |
74 class CFX_ClipRgn { | 72 class CFX_ClipRgn { |
75 public: | 73 public: |
76 CFX_ClipRgn(int device_width, int device_height); | 74 CFX_ClipRgn(int device_width, int device_height); |
77 | 75 explicit CFX_ClipRgn(const FX_RECT& rect); |
78 CFX_ClipRgn(const FX_RECT& rect); | |
79 | |
80 CFX_ClipRgn(const CFX_ClipRgn& src); | 76 CFX_ClipRgn(const CFX_ClipRgn& src); |
81 | |
82 ~CFX_ClipRgn(); | 77 ~CFX_ClipRgn(); |
83 | 78 |
84 typedef enum { RectI, MaskF } ClipType; | 79 enum ClipType { RectI, MaskF }; |
85 | |
86 void Reset(const FX_RECT& rect); | 80 void Reset(const FX_RECT& rect); |
87 | |
88 ClipType GetType() const { return m_Type; } | 81 ClipType GetType() const { return m_Type; } |
89 | |
90 const FX_RECT& GetBox() const { return m_Box; } | 82 const FX_RECT& GetBox() const { return m_Box; } |
91 | |
92 CFX_DIBitmapRef GetMask() const { return m_Mask; } | 83 CFX_DIBitmapRef GetMask() const { return m_Mask; } |
93 | |
94 void IntersectRect(const FX_RECT& rect); | 84 void IntersectRect(const FX_RECT& rect); |
95 | |
96 void IntersectMaskF(int left, int top, CFX_DIBitmapRef Mask); | 85 void IntersectMaskF(int left, int top, CFX_DIBitmapRef Mask); |
97 | 86 |
98 protected: | 87 protected: |
| 88 void IntersectMaskRect(FX_RECT rect, FX_RECT mask_box, CFX_DIBitmapRef Mask); |
| 89 |
99 ClipType m_Type; | 90 ClipType m_Type; |
100 | |
101 FX_RECT m_Box; | 91 FX_RECT m_Box; |
102 | |
103 CFX_DIBitmapRef m_Mask; | 92 CFX_DIBitmapRef m_Mask; |
104 | |
105 void IntersectMaskRect(FX_RECT rect, FX_RECT mask_box, CFX_DIBitmapRef Mask); | |
106 }; | 93 }; |
107 | 94 |
108 class CFX_PathData { | 95 class CFX_PathData { |
109 public: | 96 public: |
110 CFX_PathData(); | 97 CFX_PathData(); |
111 | |
112 CFX_PathData(const CFX_PathData& src); | 98 CFX_PathData(const CFX_PathData& src); |
113 | |
114 ~CFX_PathData(); | 99 ~CFX_PathData(); |
115 | 100 |
116 int GetPointCount() const { return m_PointCount; } | 101 int GetPointCount() const { return m_PointCount; } |
117 | |
118 int GetFlag(int index) const { return m_pPoints[index].m_Flag; } | 102 int GetFlag(int index) const { return m_pPoints[index].m_Flag; } |
119 | |
120 FX_FLOAT GetPointX(int index) const { return m_pPoints[index].m_PointX; } | 103 FX_FLOAT GetPointX(int index) const { return m_pPoints[index].m_PointX; } |
121 | |
122 FX_FLOAT GetPointY(int index) const { return m_pPoints[index].m_PointY; } | 104 FX_FLOAT GetPointY(int index) const { return m_pPoints[index].m_PointY; } |
123 | |
124 FX_PATHPOINT* GetPoints() const { return m_pPoints; } | 105 FX_PATHPOINT* GetPoints() const { return m_pPoints; } |
125 | |
126 void SetPointCount(int nPoints); | 106 void SetPointCount(int nPoints); |
127 void AllocPointCount(int nPoints); | 107 void AllocPointCount(int nPoints); |
128 void AddPointCount(int addPoints); | 108 void AddPointCount(int addPoints); |
129 | |
130 CFX_FloatRect GetBoundingBox() const; | 109 CFX_FloatRect GetBoundingBox() const; |
131 | |
132 CFX_FloatRect GetBoundingBox(FX_FLOAT line_width, FX_FLOAT miter_limit) const; | 110 CFX_FloatRect GetBoundingBox(FX_FLOAT line_width, FX_FLOAT miter_limit) const; |
133 | |
134 void Transform(const CFX_Matrix* pMatrix); | 111 void Transform(const CFX_Matrix* pMatrix); |
135 | |
136 FX_BOOL IsRect() const; | 112 FX_BOOL IsRect() const; |
137 | |
138 FX_BOOL GetZeroAreaPath(CFX_PathData& NewPath, | 113 FX_BOOL GetZeroAreaPath(CFX_PathData& NewPath, |
139 CFX_Matrix* pMatrix, | 114 CFX_Matrix* pMatrix, |
140 FX_BOOL& bThin, | 115 FX_BOOL& bThin, |
141 FX_BOOL bAdjust) const; | 116 FX_BOOL bAdjust) const; |
142 | |
143 FX_BOOL IsRect(const CFX_Matrix* pMatrix, CFX_FloatRect* rect) const; | 117 FX_BOOL IsRect(const CFX_Matrix* pMatrix, CFX_FloatRect* rect) const; |
144 | |
145 void Append(const CFX_PathData* pSrc, const CFX_Matrix* pMatrix); | 118 void Append(const CFX_PathData* pSrc, const CFX_Matrix* pMatrix); |
146 void AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX_FLOAT top); | 119 void AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX_FLOAT top); |
147 | |
148 void SetPoint(int index, FX_FLOAT x, FX_FLOAT y, int flag); | 120 void SetPoint(int index, FX_FLOAT x, FX_FLOAT y, int flag); |
149 | |
150 void TrimPoints(int nPoints); | 121 void TrimPoints(int nPoints); |
151 | |
152 void Copy(const CFX_PathData& src); | 122 void Copy(const CFX_PathData& src); |
153 | 123 |
154 protected: | 124 protected: |
155 friend class CPDF_Path; | 125 friend class CPDF_Path; |
156 | 126 |
157 int m_PointCount; | 127 int m_PointCount; |
158 | |
159 FX_PATHPOINT* m_pPoints; | 128 FX_PATHPOINT* m_pPoints; |
160 | |
161 int m_AllocCount; | 129 int m_AllocCount; |
162 }; | 130 }; |
| 131 |
163 class CFX_GraphStateData { | 132 class CFX_GraphStateData { |
164 public: | 133 public: |
165 CFX_GraphStateData(); | 134 CFX_GraphStateData(); |
166 CFX_GraphStateData(const CFX_GraphStateData& src); | 135 CFX_GraphStateData(const CFX_GraphStateData& src); |
167 ~CFX_GraphStateData(); | 136 ~CFX_GraphStateData(); |
168 | 137 |
169 void Copy(const CFX_GraphStateData& src); | 138 void Copy(const CFX_GraphStateData& src); |
170 void SetDashCount(int count); | 139 void SetDashCount(int count); |
171 | 140 |
172 typedef enum { LineCapButt = 0, LineCapRound = 1, LineCapSquare = 2 } LineCap; | 141 enum LineCap { LineCapButt = 0, LineCapRound = 1, LineCapSquare = 2 }; |
173 LineCap m_LineCap; | 142 LineCap m_LineCap; |
174 int m_DashCount; | 143 int m_DashCount; |
175 FX_FLOAT* m_DashArray; | 144 FX_FLOAT* m_DashArray; |
176 FX_FLOAT m_DashPhase; | 145 FX_FLOAT m_DashPhase; |
177 | 146 |
178 typedef enum { | 147 enum LineJoin { |
179 LineJoinMiter = 0, | 148 LineJoinMiter = 0, |
180 LineJoinRound = 1, | 149 LineJoinRound = 1, |
181 LineJoinBevel = 2, | 150 LineJoinBevel = 2, |
182 } LineJoin; | 151 }; |
183 LineJoin m_LineJoin; | 152 LineJoin m_LineJoin; |
184 FX_FLOAT m_MiterLimit; | 153 FX_FLOAT m_MiterLimit; |
185 FX_FLOAT m_LineWidth; | 154 FX_FLOAT m_LineWidth; |
186 }; | 155 }; |
| 156 |
187 #define FXDC_DEVICE_CLASS 1 | 157 #define FXDC_DEVICE_CLASS 1 |
188 #define FXDC_PIXEL_WIDTH 2 | 158 #define FXDC_PIXEL_WIDTH 2 |
189 #define FXDC_PIXEL_HEIGHT 3 | 159 #define FXDC_PIXEL_HEIGHT 3 |
190 #define FXDC_BITS_PIXEL 4 | 160 #define FXDC_BITS_PIXEL 4 |
191 #define FXDC_HORZ_SIZE 5 | 161 #define FXDC_HORZ_SIZE 5 |
192 #define FXDC_VERT_SIZE 6 | 162 #define FXDC_VERT_SIZE 6 |
193 #define FXDC_RENDER_CAPS 7 | 163 #define FXDC_RENDER_CAPS 7 |
194 #define FXDC_DITHER_BITS 8 | 164 #define FXDC_DITHER_BITS 8 |
195 #define FXDC_DISPLAY 1 | 165 #define FXDC_DISPLAY 1 |
196 #define FXDC_PRINTER 2 | 166 #define FXDC_PRINTER 2 |
(...skipping 20 matching lines...) Expand all Loading... |
217 #define FX_STROKE_TEXT_MODE 64 | 187 #define FX_STROKE_TEXT_MODE 64 |
218 #define FX_FILL_TEXT_MODE 128 | 188 #define FX_FILL_TEXT_MODE 128 |
219 #define FX_ZEROAREA_FILL 256 | 189 #define FX_ZEROAREA_FILL 256 |
220 #define FXFILL_NOPATHSMOOTH 512 | 190 #define FXFILL_NOPATHSMOOTH 512 |
221 #define FXTEXT_CLEARTYPE 0x01 | 191 #define FXTEXT_CLEARTYPE 0x01 |
222 #define FXTEXT_BGR_STRIPE 0x02 | 192 #define FXTEXT_BGR_STRIPE 0x02 |
223 #define FXTEXT_PRINTGRAPHICTEXT 0x04 | 193 #define FXTEXT_PRINTGRAPHICTEXT 0x04 |
224 #define FXTEXT_NO_NATIVETEXT 0x08 | 194 #define FXTEXT_NO_NATIVETEXT 0x08 |
225 #define FXTEXT_PRINTIMAGETEXT 0x10 | 195 #define FXTEXT_PRINTIMAGETEXT 0x10 |
226 #define FXTEXT_NOSMOOTH 0x20 | 196 #define FXTEXT_NOSMOOTH 0x20 |
227 typedef struct { | 197 |
| 198 struct FXTEXT_CHARPOS { |
228 uint32_t m_GlyphIndex; | 199 uint32_t m_GlyphIndex; |
229 FX_FLOAT m_OriginX, m_OriginY; | 200 FX_FLOAT m_OriginX, m_OriginY; |
230 int m_FontCharWidth; | 201 int m_FontCharWidth; |
231 FX_BOOL m_bGlyphAdjust; | 202 FX_BOOL m_bGlyphAdjust; |
232 FX_FLOAT m_AdjustMatrix[4]; | 203 FX_FLOAT m_AdjustMatrix[4]; |
233 uint32_t m_ExtGID; | 204 uint32_t m_ExtGID; |
234 FX_BOOL m_bFontStyle; | 205 FX_BOOL m_bFontStyle; |
235 } FXTEXT_CHARPOS; | 206 }; |
236 | 207 |
237 class CFX_RenderDevice { | 208 class CFX_RenderDevice { |
238 public: | 209 public: |
239 CFX_RenderDevice(); | 210 CFX_RenderDevice(); |
240 virtual ~CFX_RenderDevice(); | 211 virtual ~CFX_RenderDevice(); |
241 | 212 |
242 void SetDeviceDriver(IFX_RenderDeviceDriver* pDriver); | 213 void SetDeviceDriver(IFX_RenderDeviceDriver* pDriver); |
243 IFX_RenderDeviceDriver* GetDeviceDriver() const { return m_pDeviceDriver; } | 214 IFX_RenderDeviceDriver* GetDeviceDriver() const { return m_pDeviceDriver; } |
244 | 215 |
245 FX_BOOL StartRendering(); | 216 FX_BOOL StartRendering(); |
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 | 555 |
585 class IFX_PSOutput { | 556 class IFX_PSOutput { |
586 public: | 557 public: |
587 virtual void Release() = 0; | 558 virtual void Release() = 0; |
588 virtual void OutputPS(const FX_CHAR* str, int len) = 0; | 559 virtual void OutputPS(const FX_CHAR* str, int len) = 0; |
589 | 560 |
590 protected: | 561 protected: |
591 virtual ~IFX_PSOutput() {} | 562 virtual ~IFX_PSOutput() {} |
592 }; | 563 }; |
593 | 564 |
594 class CPSFont; | |
595 class CFX_PSRenderer { | 565 class CFX_PSRenderer { |
596 public: | 566 public: |
597 CFX_PSRenderer(); | 567 CFX_PSRenderer(); |
598 | |
599 ~CFX_PSRenderer(); | 568 ~CFX_PSRenderer(); |
600 | 569 |
601 void Init(IFX_PSOutput* pOutput, | 570 void Init(IFX_PSOutput* pOutput, |
602 int ps_level, | 571 int ps_level, |
603 int width, | 572 int width, |
604 int height, | 573 int height, |
605 FX_BOOL bCmykOutput); | 574 FX_BOOL bCmykOutput); |
606 FX_BOOL StartRendering(); | 575 FX_BOOL StartRendering(); |
607 void EndRendering(); | 576 void EndRendering(); |
608 | |
609 void SaveState(); | 577 void SaveState(); |
610 | |
611 void RestoreState(FX_BOOL bKeepSaved = FALSE); | 578 void RestoreState(FX_BOOL bKeepSaved = FALSE); |
612 | |
613 void SetClip_PathFill(const CFX_PathData* pPathData, | 579 void SetClip_PathFill(const CFX_PathData* pPathData, |
614 const CFX_Matrix* pObject2Device, | 580 const CFX_Matrix* pObject2Device, |
615 int fill_mode); | 581 int fill_mode); |
616 | |
617 void SetClip_PathStroke(const CFX_PathData* pPathData, | 582 void SetClip_PathStroke(const CFX_PathData* pPathData, |
618 const CFX_Matrix* pObject2Device, | 583 const CFX_Matrix* pObject2Device, |
619 const CFX_GraphStateData* pGraphState); | 584 const CFX_GraphStateData* pGraphState); |
620 | |
621 FX_RECT GetClipBox() { return m_ClipBox; } | 585 FX_RECT GetClipBox() { return m_ClipBox; } |
622 | |
623 FX_BOOL DrawPath(const CFX_PathData* pPathData, | 586 FX_BOOL DrawPath(const CFX_PathData* pPathData, |
624 const CFX_Matrix* pObject2Device, | 587 const CFX_Matrix* pObject2Device, |
625 const CFX_GraphStateData* pGraphState, | 588 const CFX_GraphStateData* pGraphState, |
626 uint32_t fill_color, | 589 uint32_t fill_color, |
627 uint32_t stroke_color, | 590 uint32_t stroke_color, |
628 int fill_mode, | 591 int fill_mode, |
629 int alpha_flag = 0, | 592 int alpha_flag = 0, |
630 void* pIccTransform = NULL); | 593 void* pIccTransform = NULL); |
631 | |
632 FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, | 594 FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, |
633 uint32_t color, | 595 uint32_t color, |
634 int dest_left, | 596 int dest_left, |
635 int dest_top, | 597 int dest_top, |
636 int alpha_flag = 0, | 598 int alpha_flag = 0, |
637 void* pIccTransform = NULL); | 599 void* pIccTransform = NULL); |
638 | |
639 FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, | 600 FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, |
640 uint32_t color, | 601 uint32_t color, |
641 int dest_left, | 602 int dest_left, |
642 int dest_top, | 603 int dest_top, |
643 int dest_width, | 604 int dest_width, |
644 int dest_height, | 605 int dest_height, |
645 uint32_t flags, | 606 uint32_t flags, |
646 int alpha_flag = 0, | 607 int alpha_flag = 0, |
647 void* pIccTransform = NULL); | 608 void* pIccTransform = NULL); |
648 | |
649 FX_BOOL DrawDIBits(const CFX_DIBSource* pBitmap, | 609 FX_BOOL DrawDIBits(const CFX_DIBSource* pBitmap, |
650 uint32_t color, | 610 uint32_t color, |
651 const CFX_Matrix* pMatrix, | 611 const CFX_Matrix* pMatrix, |
652 uint32_t flags, | 612 uint32_t flags, |
653 int alpha_flag = 0, | 613 int alpha_flag = 0, |
654 void* pIccTransform = NULL); | 614 void* pIccTransform = NULL); |
655 | |
656 FX_BOOL DrawText(int nChars, | 615 FX_BOOL DrawText(int nChars, |
657 const FXTEXT_CHARPOS* pCharPos, | 616 const FXTEXT_CHARPOS* pCharPos, |
658 CFX_Font* pFont, | 617 CFX_Font* pFont, |
659 CFX_FontCache* pCache, | 618 CFX_FontCache* pCache, |
660 const CFX_Matrix* pObject2Device, | 619 const CFX_Matrix* pObject2Device, |
661 FX_FLOAT font_size, | 620 FX_FLOAT font_size, |
662 uint32_t color, | 621 uint32_t color, |
663 int alpha_flag = 0, | 622 int alpha_flag = 0, |
664 void* pIccTransform = NULL); | 623 void* pIccTransform = NULL); |
665 | 624 |
666 private: | 625 private: |
667 IFX_PSOutput* m_pOutput; | |
668 | |
669 int m_PSLevel; | |
670 | |
671 CFX_GraphStateData m_CurGraphState; | |
672 | |
673 FX_BOOL m_bGraphStateSet; | |
674 | |
675 FX_BOOL m_bCmykOutput; | |
676 | |
677 FX_BOOL m_bColorSet; | |
678 | |
679 uint32_t m_LastColor; | |
680 | |
681 FX_RECT m_ClipBox; | |
682 | |
683 CFX_ArrayTemplate<CPSFont*> m_PSFontList; | |
684 | |
685 CFX_ArrayTemplate<FX_RECT> m_ClipBoxStack; | |
686 FX_BOOL m_bInited; | |
687 | |
688 void OutputPath(const CFX_PathData* pPathData, | 626 void OutputPath(const CFX_PathData* pPathData, |
689 const CFX_Matrix* pObject2Device); | 627 const CFX_Matrix* pObject2Device); |
690 | |
691 void SetGraphState(const CFX_GraphStateData* pGraphState); | 628 void SetGraphState(const CFX_GraphStateData* pGraphState); |
692 | |
693 void SetColor(uint32_t color, int alpha_flag, void* pIccTransform); | 629 void SetColor(uint32_t color, int alpha_flag, void* pIccTransform); |
694 | |
695 void FindPSFontGlyph(CFX_FaceCache* pFaceCache, | 630 void FindPSFontGlyph(CFX_FaceCache* pFaceCache, |
696 CFX_Font* pFont, | 631 CFX_Font* pFont, |
697 const FXTEXT_CHARPOS& charpos, | 632 const FXTEXT_CHARPOS& charpos, |
698 int& ps_fontnum, | 633 int& ps_fontnum, |
699 int& ps_glyphindex); | 634 int& ps_glyphindex); |
| 635 void WritePSBinary(const uint8_t* data, int len); |
700 | 636 |
701 void WritePSBinary(const uint8_t* data, int len); | 637 IFX_PSOutput* m_pOutput; |
| 638 int m_PSLevel; |
| 639 CFX_GraphStateData m_CurGraphState; |
| 640 FX_BOOL m_bGraphStateSet; |
| 641 FX_BOOL m_bCmykOutput; |
| 642 FX_BOOL m_bColorSet; |
| 643 uint32_t m_LastColor; |
| 644 FX_RECT m_ClipBox; |
| 645 CFX_ArrayTemplate<CPSFont*> m_PSFontList; |
| 646 CFX_ArrayTemplate<FX_RECT> m_ClipBoxStack; |
| 647 FX_BOOL m_bInited; |
702 }; | 648 }; |
703 | 649 |
704 #endif // CORE_FXGE_INCLUDE_FX_GE_H_ | 650 #endif // CORE_FXGE_INCLUDE_FX_GE_H_ |
OLD | NEW |