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 struct WINDIB_Open_Args_; | 7 struct WINDIB_Open_Args_; |
8 class CGdiplusExt | 8 class CGdiplusExt { |
9 { | 9 public: |
10 public: | 10 CGdiplusExt(); |
11 CGdiplusExt(); | 11 ~CGdiplusExt(); |
12 ~CGdiplusExt(); | 12 void Load(); |
13 void» » » Load(); | 13 FX_BOOL IsAvailable() { return m_hModule != NULL; } |
14 FX_BOOL» » » IsAvailable() | 14 FX_BOOL StretchBitMask(HDC hDC, |
15 { | 15 BOOL bMonoDevice, |
16 return m_hModule != NULL; | 16 const CFX_DIBitmap* pBitmap, |
| 17 int dest_left, |
| 18 int dest_top, |
| 19 int dest_width, |
| 20 int dest_height, |
| 21 FX_DWORD argb, |
| 22 const FX_RECT* pClipRect, |
| 23 int flags); |
| 24 FX_BOOL StretchDIBits(HDC hDC, |
| 25 const CFX_DIBitmap* pBitmap, |
| 26 int dest_left, |
| 27 int dest_top, |
| 28 int dest_width, |
| 29 int dest_height, |
| 30 const FX_RECT* pClipRect, |
| 31 int flags); |
| 32 FX_BOOL DrawPath(HDC hDC, |
| 33 const CFX_PathData* pPathData, |
| 34 const CFX_AffineMatrix* pObject2Device, |
| 35 const CFX_GraphStateData* pGraphState, |
| 36 FX_DWORD fill_argb, |
| 37 FX_DWORD stroke_argb, |
| 38 int fill_mode); |
| 39 |
| 40 void* LoadMemFont(FX_BYTE* pData, FX_DWORD size); |
| 41 void DeleteMemFont(void* pFontCollection); |
| 42 FX_BOOL GdipCreateFromImage(void* bitmap, void** graphics); |
| 43 void GdipDeleteGraphics(void* graphics); |
| 44 void GdipSetTextRenderingHint(void* graphics, int mode); |
| 45 void GdipSetPageUnit(void* graphics, FX_DWORD unit); |
| 46 void GdipSetWorldTransform(void* graphics, void* pMatrix); |
| 47 FX_BOOL GdipDrawDriverString(void* graphics, |
| 48 unsigned short* text, |
| 49 int length, |
| 50 void* font, |
| 51 void* brush, |
| 52 void* positions, |
| 53 int flags, |
| 54 const void* matrix); |
| 55 void GdipCreateBrush(FX_DWORD fill_argb, void** pBrush); |
| 56 void GdipDeleteBrush(void* pBrush); |
| 57 void GdipCreateMatrix(FX_FLOAT a, |
| 58 FX_FLOAT b, |
| 59 FX_FLOAT c, |
| 60 FX_FLOAT d, |
| 61 FX_FLOAT e, |
| 62 FX_FLOAT f, |
| 63 void** matrix); |
| 64 void GdipDeleteMatrix(void* matrix); |
| 65 FX_BOOL GdipCreateFontFamilyFromName(FX_LPCWSTR name, |
| 66 void* pFontCollection, |
| 67 void** pFamily); |
| 68 void GdipDeleteFontFamily(void* pFamily); |
| 69 FX_BOOL GdipCreateFontFromFamily(void* pFamily, |
| 70 FX_FLOAT font_size, |
| 71 int fontstyle, |
| 72 int flag, |
| 73 void** pFont); |
| 74 void* GdipCreateFontFromCollection(void* pFontCollection, |
| 75 FX_FLOAT font_size, |
| 76 int fontstyle); |
| 77 void GdipDeleteFont(void* pFont); |
| 78 FX_BOOL GdipCreateBitmap(CFX_DIBitmap* pBitmap, void** bitmap); |
| 79 void GdipDisposeImage(void* bitmap); |
| 80 void GdipGetFontSize(void* pFont, FX_FLOAT* size); |
| 81 void* GdiAddFontMemResourceEx(void* pFontdata, |
| 82 FX_DWORD size, |
| 83 void* pdv, |
| 84 FX_DWORD* num_face); |
| 85 FX_BOOL GdiRemoveFontMemResourceEx(void* handle); |
| 86 void* m_Functions[100]; |
| 87 void* m_pGdiAddFontMemResourceEx; |
| 88 void* m_pGdiRemoveFontMemResourseEx; |
| 89 CFX_DIBitmap* LoadDIBitmap(WINDIB_Open_Args_ args); |
| 90 |
| 91 protected: |
| 92 HMODULE m_hModule; |
| 93 HMODULE m_GdiModule; |
| 94 }; |
| 95 #include "dwrite_int.h" |
| 96 class CWin32Platform : public CFX_Object { |
| 97 public: |
| 98 FX_BOOL m_bHalfTone; |
| 99 CGdiplusExt m_GdiplusExt; |
| 100 CDWriteExt m_DWriteExt; |
| 101 }; |
| 102 class CGdiDeviceDriver : public IFX_RenderDeviceDriver { |
| 103 protected: |
| 104 virtual int GetDeviceCaps(int caps_id); |
| 105 virtual void SaveState() { SaveDC(m_hDC); } |
| 106 virtual void RestoreState(FX_BOOL bKeepSaved = FALSE) { |
| 107 RestoreDC(m_hDC, -1); |
| 108 if (bKeepSaved) { |
| 109 SaveDC(m_hDC); |
17 } | 110 } |
18 FX_BOOL» » » StretchBitMask(HDC hDC, BOOL bMonoDevice, const
CFX_DIBitmap* pBitmap, int dest_left, int dest_top, | 111 } |
19 int dest_width, int dest_height, FX_DWORD arg
b, const FX_RECT* pClipRect, int flags); | 112 virtual FX_BOOL SetClip_PathFill(const CFX_PathData* pPathData, |
20 FX_BOOL» » » StretchDIBits(HDC hDC, const CFX_DIBitmap* pBitm
ap, int dest_left, int dest_top, | 113 const CFX_AffineMatrix* pObject2Device, |
21 int dest_width, int dest_height, const FX_RECT
* pClipRect, int flags); | 114 int fill_mode); |
22 FX_BOOL» » » DrawPath(HDC hDC, const CFX_PathData* pPathData, | 115 virtual FX_BOOL SetClip_PathStroke(const CFX_PathData* pPathData, |
23 const CFX_AffineMatrix* pObject2Device, | |
24 const CFX_GraphStateData* pGraphState, | |
25 FX_DWORD fill_argb, | |
26 FX_DWORD stroke_argb, | |
27 int fill_mode | |
28 ); | |
29 | |
30 void*» » » LoadMemFont(FX_BYTE* pData, FX_DWORD size); | |
31 void» » » DeleteMemFont(void* pFontCollection); | |
32 FX_BOOL GdipCreateFromImage(void* bitmap, void** graphics); | |
33 void GdipDeleteGraphics(void* graphics); | |
34 void GdipSetTextRenderingHint(void* graphics, int mode); | |
35 void GdipSetPageUnit(void* graphics, FX_DWORD unit); | |
36 void GdipSetWorldTransform(void* graphics, void* pMatrix); | |
37 FX_BOOL GdipDrawDriverString(void *graphics, unsigned short *text,
int length, void *font, void* brush, void *positions, int flags, const void *mat
rix); | |
38 void GdipCreateBrush(FX_DWORD fill_argb, void** pBrush); | |
39 void GdipDeleteBrush(void* pBrush); | |
40 void GdipCreateMatrix(FX_FLOAT a, FX_FLOAT b, FX_FLOAT c, FX_FLOA
T d, FX_FLOAT e, FX_FLOAT f, void** matrix); | |
41 void GdipDeleteMatrix(void* matrix); | |
42 FX_BOOL GdipCreateFontFamilyFromName(FX_LPCWSTR name, void* pFontCol
lection, void**pFamily); | |
43 void GdipDeleteFontFamily(void* pFamily); | |
44 FX_BOOL GdipCreateFontFromFamily(void* pFamily, FX_FLOAT font_size,
int fontstyle, int flag, void** pFont); | |
45 void* GdipCreateFontFromCollection(void* pFontCollection, FX_FLOAT
font_size, int fontstyle); | |
46 void GdipDeleteFont(void* pFont); | |
47 FX_BOOL GdipCreateBitmap(CFX_DIBitmap* pBitmap, void**bitmap); | |
48 void GdipDisposeImage(void* bitmap); | |
49 void GdipGetFontSize(void *pFont, FX_FLOAT *size); | |
50 void* GdiAddFontMemResourceEx(void *pFontdata, FX_DWORD size, void
* pdv, FX_DWORD* num_face); | |
51 FX_BOOL GdiRemoveFontMemResourceEx(void* handle); | |
52 void*» » » m_Functions[100]; | |
53 void* m_pGdiAddFontMemResourceEx; | |
54 void* m_pGdiRemoveFontMemResourseEx; | |
55 CFX_DIBitmap*» LoadDIBitmap(WINDIB_Open_Args_ args); | |
56 protected: | |
57 HMODULE» » » m_hModule; | |
58 HMODULE m_GdiModule; | |
59 }; | |
60 #include "dwrite_int.h" | |
61 class CWin32Platform : public CFX_Object | |
62 { | |
63 public: | |
64 FX_BOOL» » » m_bHalfTone; | |
65 CGdiplusExt»» m_GdiplusExt; | |
66 CDWriteExt m_DWriteExt; | |
67 }; | |
68 class CGdiDeviceDriver : public IFX_RenderDeviceDriver | |
69 { | |
70 protected: | |
71 virtual int»» GetDeviceCaps(int caps_id); | |
72 virtual void» SaveState() | |
73 { | |
74 SaveDC(m_hDC); | |
75 } | |
76 virtual void» RestoreState(FX_BOOL bKeepSaved = FALSE) | |
77 { | |
78 RestoreDC(m_hDC, -1); | |
79 if (bKeepSaved) { | |
80 SaveDC(m_hDC); | |
81 } | |
82 } | |
83 virtual FX_BOOL» SetClip_PathFill(const CFX_PathData* pPathData, | |
84 const CFX_AffineMatrix* pObject2Device, | 116 const CFX_AffineMatrix* pObject2Device, |
85 int fill_mode | 117 const CFX_GraphStateData* pGraphState); |
86 ); | 118 virtual FX_BOOL DrawPath(const CFX_PathData* pPathData, |
87 virtual FX_BOOL» SetClip_PathStroke(const CFX_PathData* pPathData, | 119 const CFX_AffineMatrix* pObject2Device, |
88 const CFX_AffineMatrix* pObject2Device, | 120 const CFX_GraphStateData* pGraphState, |
89 const CFX_GraphStateData* pGraphState | 121 FX_DWORD fill_color, |
90 ); | 122 FX_DWORD stroke_color, |
91 virtual FX_BOOL» DrawPath(const CFX_PathData* pPathData, | 123 int fill_mode, |
92 const CFX_AffineMatrix* pObject2Device, | 124 int alpha_flag, |
93 const CFX_GraphStateData* pGraphState, | 125 void* pIccTransform, |
94 FX_DWORD fill_color, | 126 int blend_type); |
95 FX_DWORD stroke_color, | 127 virtual FX_BOOL FillRect(const FX_RECT* pRect, |
96 int fill_mode, | 128 FX_DWORD fill_color, |
| 129 int alpha_flag, |
| 130 void* pIccTransform, |
| 131 int blend_type); |
| 132 virtual FX_BOOL DrawCosmeticLine(FX_FLOAT x1, |
| 133 FX_FLOAT y1, |
| 134 FX_FLOAT x2, |
| 135 FX_FLOAT y2, |
| 136 FX_DWORD color, |
| 137 int alpha_flag, |
| 138 void* pIccTransform, |
| 139 int blend_type); |
| 140 virtual FX_LPVOID GetClipRgn(); |
| 141 virtual FX_BOOL SetClipRgn(FX_LPVOID pRgn); |
| 142 virtual FX_BOOL GetClipBox(FX_RECT* pRect); |
| 143 virtual FX_BOOL DeleteDeviceRgn(FX_LPVOID pRgn); |
| 144 virtual void DrawLine(FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT y2); |
| 145 virtual void* GetPlatformSurface() { return (void*)m_hDC; } |
| 146 FX_BOOL GDI_SetDIBits(const CFX_DIBitmap* pBitmap, |
| 147 const FX_RECT* pSrcRect, |
| 148 int left, |
| 149 int top, |
| 150 void* pIccTransform); |
| 151 FX_BOOL GDI_StretchDIBits(const CFX_DIBitmap* pBitmap, |
| 152 int dest_left, |
| 153 int dest_top, |
| 154 int dest_width, |
| 155 int dest_height, |
| 156 FX_DWORD flags, |
| 157 void* pIccTransform); |
| 158 FX_BOOL GDI_StretchBitMask(const CFX_DIBitmap* pBitmap, |
| 159 int dest_left, |
| 160 int dest_top, |
| 161 int dest_width, |
| 162 int dest_height, |
| 163 FX_DWORD bitmap_color, |
| 164 FX_DWORD flags, |
97 int alpha_flag, | 165 int alpha_flag, |
98 void* pIccTransform, | 166 void* pIccTransform); |
99 int blend_type | 167 HDC m_hDC; |
100 ); | 168 int m_Width, m_Height, m_nBitsPerPixel; |
101 virtual FX_BOOL FillRect(const FX_RECT* pRect, | 169 int m_DeviceClass, m_RenderCaps; |
102 FX_DWORD fill_color, | 170 CGdiDeviceDriver(HDC hDC, int device_class); |
103 int alpha_flag, void* pIccTransform, int blend_type
); | 171 ~CGdiDeviceDriver() {} |
104 virtual FX_BOOL DrawCosmeticLine(FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2,
FX_FLOAT y2, FX_DWORD color, | 172 }; |
105 int alpha_flag, void* pIccTransform, int bl
end_type); | 173 class CGdiDisplayDriver : public CGdiDeviceDriver { |
106 virtual FX_LPVOID GetClipRgn() ; | 174 public: |
107 virtual FX_BOOL SetClipRgn(FX_LPVOID pRgn) ; | 175 CGdiDisplayDriver(HDC hDC); |
108 virtual FX_BOOL GetClipBox(FX_RECT* pRect); | 176 |
109 virtual FX_BOOL DeleteDeviceRgn(FX_LPVOID pRgn); | 177 protected: |
110 virtual void DrawLine(FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT
y2); | 178 virtual FX_BOOL GetDIBits(CFX_DIBitmap* pBitmap, |
111 virtual void* GetPlatformSurface() | 179 int left, |
112 { | 180 int top, |
113 return (void*)m_hDC; | 181 void* pIccTransform = NULL, |
114 } | 182 FX_BOOL bDEdge = FALSE); |
115 FX_BOOL GDI_SetDIBits(const CFX_DIBitmap* pBitmap, const
FX_RECT* pSrcRect, int left, int top, | 183 virtual FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, |
116 void* pIccTransform); | 184 FX_DWORD color, |
117 FX_BOOL GDI_StretchDIBits(const CFX_DIBitmap* pBitmap, i
nt dest_left, int dest_top, | 185 const FX_RECT* pSrcRect, |
118 int dest_width, int dest_height, FX_DWORD
flags, | 186 int left, |
119 void* pIccTransform); | 187 int top, |
120 FX_BOOL GDI_StretchBitMask(const CFX_DIBitmap* pBitmap,
int dest_left, int dest_top, | 188 int blend_type, |
121 int dest_width, int dest_height, FX_DWORD
bitmap_color, FX_DWORD flags, | 189 int alpha_flag, |
122 int alpha_flag, void* pIccTransform); | 190 void* pIccTransform); |
123 HDC m_hDC; | 191 virtual FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, |
124 int m_Width, m_Height, m_nBitsPerPixel; | 192 FX_DWORD color, |
125 int m_DeviceClass, m_RenderCaps; | 193 int dest_left, |
126 CGdiDeviceDriver(HDC hDC, int device_class); | 194 int dest_top, |
127 ~CGdiDeviceDriver() {} | 195 int dest_width, |
128 }; | 196 int dest_height, |
129 class CGdiDisplayDriver : public CGdiDeviceDriver | 197 const FX_RECT* pClipRect, |
130 { | 198 FX_DWORD flags, |
131 public: | 199 int alpha_flag, |
132 CGdiDisplayDriver(HDC hDC); | 200 void* pIccTransform, |
133 protected: | 201 int blend_type); |
134 virtual FX_BOOL GetDIBits(CFX_DIBitmap* pBitmap, int left, int top, void* pI
ccTransform = NULL, FX_BOOL bDEdge = FALSE); | 202 virtual FX_BOOL StartDIBits(const CFX_DIBSource* pBitmap, |
135 virtual FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, FX_DWORD color, cons
t FX_RECT* pSrcRect, int left, int top, int blend_type, | 203 int bitmap_alpha, |
136 int alpha_flag, void* pIccTransform); | 204 FX_DWORD color, |
137 virtual FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, FX_DWORD color,
int dest_left, int dest_top, | 205 const CFX_AffineMatrix* pMatrix, |
138 int dest_width, int dest_height, const FX_RECT
* pClipRect, FX_DWORD flags, | 206 FX_DWORD render_flags, |
139 int alpha_flag, void* pIccTransform, int blend
_type); | 207 FX_LPVOID& handle, |
140 virtual FX_BOOL StartDIBits(const CFX_DIBSource* pBitmap, int bitmap_alp
ha, FX_DWORD color, | 208 int alpha_flag, |
141 const CFX_AffineMatrix* pMatrix, FX_DWORD render
_flags, FX_LPVOID& handle, | 209 void* pIccTransform, |
142 int alpha_flag, void* pIccTransform, int blend_t
ype) | 210 int blend_type) { |
143 { | 211 return FALSE; |
144 return FALSE; | 212 } |
145 } | 213 FX_BOOL UseFoxitStretchEngine(const CFX_DIBSource* pSource, |
146 FX_BOOL UseFoxitStretchEngine(const CFX_DIBSource* pSour
ce, FX_DWORD color, int dest_left, int dest_top, | 214 FX_DWORD color, |
147 int dest_width, int dest_height, const
FX_RECT* pClipRect, int render_flags, | 215 int dest_left, |
148 int alpha_flag = 0, void* pIccTransfor
m = NULL, int blend_type = FXDIB_BLEND_NORMAL); | 216 int dest_top, |
149 }; | 217 int dest_width, |
150 class CGdiPrinterDriver : public CGdiDeviceDriver | 218 int dest_height, |
151 { | 219 const FX_RECT* pClipRect, |
152 public: | 220 int render_flags, |
153 CGdiPrinterDriver(HDC hDC); | 221 int alpha_flag = 0, |
154 protected: | 222 void* pIccTransform = NULL, |
155 virtual int GetDeviceCaps(int caps_id); | 223 int blend_type = FXDIB_BLEND_NORMAL); |
156 virtual FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, FX_DWORD color, cons
t FX_RECT* pSrcRect, int left, int top, int blend_type, | 224 }; |
157 int alpha_flag, void* pIccTransform); | 225 class CGdiPrinterDriver : public CGdiDeviceDriver { |
158 virtual FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, FX_DWORD color,
int dest_left, int dest_top, | 226 public: |
159 int dest_width, int dest_height, const FX_RECT
* pClipRect, FX_DWORD flags, | 227 CGdiPrinterDriver(HDC hDC); |
160 int alpha_flag, void* pIccTransform, int blend
_type); | 228 |
161 virtual FX_BOOL StartDIBits(const CFX_DIBSource* pBitmap, int bitmap_alp
ha, FX_DWORD color, | 229 protected: |
162 const CFX_AffineMatrix* pMatrix, FX_DWORD render
_flags, FX_LPVOID& handle, | 230 virtual int GetDeviceCaps(int caps_id); |
163 int alpha_flag, void* pIccTransform, int blend_t
ype); | 231 virtual FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, |
164 int m_HorzSize, m_VertSize; | 232 FX_DWORD color, |
165 FX_BOOL m_bSupportROP; | 233 const FX_RECT* pSrcRect, |
166 }; | 234 int left, |
167 class CPSOutput : public IFX_PSOutput, public CFX_Object | 235 int top, |
168 { | 236 int blend_type, |
169 public: | 237 int alpha_flag, |
170 CPSOutput(HDC hDC); | 238 void* pIccTransform); |
171 virtual ~CPSOutput(); | 239 virtual FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, |
172 virtual void Release() | 240 FX_DWORD color, |
173 { | 241 int dest_left, |
174 delete this; | 242 int dest_top, |
175 } | 243 int dest_width, |
176 void Init(); | 244 int dest_height, |
177 virtual void OutputPS(FX_LPCSTR string, int len); | 245 const FX_RECT* pClipRect, |
178 HDC m_hDC; | 246 FX_DWORD flags, |
179 FX_LPSTR m_pBuf; | 247 int alpha_flag, |
180 }; | 248 void* pIccTransform, |
181 class CPSPrinterDriver : public IFX_RenderDeviceDriver | 249 int blend_type); |
182 { | 250 virtual FX_BOOL StartDIBits(const CFX_DIBSource* pBitmap, |
183 public: | 251 int bitmap_alpha, |
184 CPSPrinterDriver(); | 252 FX_DWORD color, |
185 FX_BOOL Init(HDC hDC, int ps_level, FX_BOOL bCmykOutput)
; | 253 const CFX_AffineMatrix* pMatrix, |
186 ~CPSPrinterDriver(); | 254 FX_DWORD render_flags, |
187 protected: | 255 FX_LPVOID& handle, |
188 virtual FX_BOOL IsPSPrintDriver() | 256 int alpha_flag, |
189 { | 257 void* pIccTransform, |
190 return TRUE; | 258 int blend_type); |
191 } | 259 int m_HorzSize, m_VertSize; |
192 virtual int GetDeviceCaps(int caps_id); | 260 FX_BOOL m_bSupportROP; |
193 virtual FX_BOOL StartRendering(); | 261 }; |
194 virtual void EndRendering(); | 262 class CPSOutput : public IFX_PSOutput, public CFX_Object { |
195 virtual void SaveState(); | 263 public: |
196 virtual void RestoreState(FX_BOOL bKeepSaved = FALSE); | 264 CPSOutput(HDC hDC); |
197 virtual FX_BOOL SetClip_PathFill(const CFX_PathData* pPathData, | 265 virtual ~CPSOutput(); |
| 266 virtual void Release() { delete this; } |
| 267 void Init(); |
| 268 virtual void OutputPS(FX_LPCSTR string, int len); |
| 269 HDC m_hDC; |
| 270 FX_LPSTR m_pBuf; |
| 271 }; |
| 272 class CPSPrinterDriver : public IFX_RenderDeviceDriver { |
| 273 public: |
| 274 CPSPrinterDriver(); |
| 275 FX_BOOL Init(HDC hDC, int ps_level, FX_BOOL bCmykOutput); |
| 276 ~CPSPrinterDriver(); |
| 277 |
| 278 protected: |
| 279 virtual FX_BOOL IsPSPrintDriver() { return TRUE; } |
| 280 virtual int GetDeviceCaps(int caps_id); |
| 281 virtual FX_BOOL StartRendering(); |
| 282 virtual void EndRendering(); |
| 283 virtual void SaveState(); |
| 284 virtual void RestoreState(FX_BOOL bKeepSaved = FALSE); |
| 285 virtual FX_BOOL SetClip_PathFill(const CFX_PathData* pPathData, |
| 286 const CFX_AffineMatrix* pObject2Device, |
| 287 int fill_mode); |
| 288 virtual FX_BOOL SetClip_PathStroke(const CFX_PathData* pPathData, |
198 const CFX_AffineMatrix* pObject2Device, | 289 const CFX_AffineMatrix* pObject2Device, |
199 int fill_mode | 290 const CFX_GraphStateData* pGraphState); |
200 ); | 291 virtual FX_BOOL DrawPath(const CFX_PathData* pPathData, |
201 virtual FX_BOOL» SetClip_PathStroke(const CFX_PathData* pPathData, | 292 const CFX_AffineMatrix* pObject2Device, |
202 const CFX_AffineMatrix* pObject2Device, | 293 const CFX_GraphStateData* pGraphState, |
203 const CFX_GraphStateData* pGraphState | 294 FX_DWORD fill_color, |
204 ); | 295 FX_DWORD stroke_color, |
205 virtual FX_BOOL» DrawPath(const CFX_PathData* pPathData, | 296 int fill_mode, |
206 const CFX_AffineMatrix* pObject2Device, | 297 int alpha_flag, |
207 const CFX_GraphStateData* pGraphState, | 298 void* pIccTransform, |
208 FX_DWORD fill_color, | 299 int blend_type); |
209 FX_DWORD stroke_color, | 300 virtual FX_BOOL GetClipBox(FX_RECT* pRect); |
210 int fill_mode, | 301 virtual FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, |
211 int alpha_flag, | 302 FX_DWORD color, |
212 void* pIccTransform, | 303 const FX_RECT* pSrcRect, |
213 int blend_type | 304 int left, |
214 ); | 305 int top, |
215 virtual FX_BOOL GetClipBox(FX_RECT* pRect); | 306 int blend_type, |
216 virtual FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap, FX_DWORD color, cons
t FX_RECT* pSrcRect, int left, int top, int blend_type, | 307 int alpha_flag, |
217 int alpha_flag, void* pIccTransform); | 308 void* pIccTransform); |
218 virtual FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, FX_DWORD color,
int dest_left, int dest_top, | 309 virtual FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap, |
219 int dest_width, int dest_height, const FX_RECT
* pClipRect, FX_DWORD flags, | 310 FX_DWORD color, |
220 int alpha_flag, void* pIccTransform, int blend
_type); | 311 int dest_left, |
221 virtual FX_BOOL» StartDIBits(const CFX_DIBSource* pBitmap, int bitmap_alp
ha, FX_DWORD color, | 312 int dest_top, |
222 const CFX_AffineMatrix* pMatrix, FX_DWORD render
_flags, FX_LPVOID& handle, | 313 int dest_width, |
223 int alpha_flag, void* pIccTransform, int blend_t
ype); | 314 int dest_height, |
224 virtual FX_BOOL DrawDeviceText(int nChars, const FXTEXT_CHARPOS* pCharPos, C
FX_Font* pFont, | 315 const FX_RECT* pClipRect, |
225 CFX_FontCache* pCache, const CFX_AffineMatrix
* pObject2Device, FX_FLOAT font_size, FX_DWORD color, | 316 FX_DWORD flags, |
226 int alpha_flag, void* pIccTransform); | 317 int alpha_flag, |
227 virtual void*» GetPlatformSurface() | 318 void* pIccTransform, |
228 { | 319 int blend_type); |
229 return (void*)m_hDC; | 320 virtual FX_BOOL StartDIBits(const CFX_DIBSource* pBitmap, |
230 } | 321 int bitmap_alpha, |
231 HDC»» » » m_hDC; | 322 FX_DWORD color, |
232 FX_BOOL» » » m_bCmykOutput; | 323 const CFX_AffineMatrix* pMatrix, |
233 int»» » » m_Width, m_Height, m_nBitsPerPixel; | 324 FX_DWORD render_flags, |
234 int»» » » m_HorzSize, m_VertSize; | 325 FX_LPVOID& handle, |
235 CPSOutput*» » m_pPSOutput; | 326 int alpha_flag, |
236 CFX_PSRenderer» m_PSRenderer; | 327 void* pIccTransform, |
237 }; | 328 int blend_type); |
238 void _Color2Argb(FX_ARGB& argb, FX_DWORD color, int alpha_flag, void* pIccTransf
orm); | 329 virtual FX_BOOL DrawDeviceText(int nChars, |
| 330 const FXTEXT_CHARPOS* pCharPos, |
| 331 CFX_Font* pFont, |
| 332 CFX_FontCache* pCache, |
| 333 const CFX_AffineMatrix* pObject2Device, |
| 334 FX_FLOAT font_size, |
| 335 FX_DWORD color, |
| 336 int alpha_flag, |
| 337 void* pIccTransform); |
| 338 virtual void* GetPlatformSurface() { return (void*)m_hDC; } |
| 339 HDC m_hDC; |
| 340 FX_BOOL m_bCmykOutput; |
| 341 int m_Width, m_Height, m_nBitsPerPixel; |
| 342 int m_HorzSize, m_VertSize; |
| 343 CPSOutput* m_pPSOutput; |
| 344 CFX_PSRenderer m_PSRenderer; |
| 345 }; |
| 346 void _Color2Argb(FX_ARGB& argb, |
| 347 FX_DWORD color, |
| 348 int alpha_flag, |
| 349 void* pIccTransform); |
OLD | NEW |