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_RENDER_RENDER_INT_H_ | 7 #ifndef CORE_FPDFAPI_RENDER_RENDER_INT_H_ |
8 #define CORE_FPDFAPI_RENDER_RENDER_INT_H_ | 8 #define CORE_FPDFAPI_RENDER_RENDER_INT_H_ |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 class CPDF_ShadingObject; | 42 class CPDF_ShadingObject; |
43 class CPDF_ShadingPattern; | 43 class CPDF_ShadingPattern; |
44 class CPDF_Stream; | 44 class CPDF_Stream; |
45 class CPDF_TilingPattern; | 45 class CPDF_TilingPattern; |
46 class CPDF_TransferFunc; | 46 class CPDF_TransferFunc; |
47 class CPDF_Type3Cache; | 47 class CPDF_Type3Cache; |
48 class CPDF_Type3Glyphs; | 48 class CPDF_Type3Glyphs; |
49 class CPDF_Type3Char; | 49 class CPDF_Type3Char; |
50 class CPDF_Type3Font; | 50 class CPDF_Type3Font; |
51 | 51 |
52 FX_BOOL IsAvailableMatrix(const CFX_Matrix& matrix); | 52 bool IsAvailableMatrix(const CFX_Matrix& matrix); |
53 | 53 |
54 class CPDF_TransferFunc { | 54 class CPDF_TransferFunc { |
55 public: | 55 public: |
56 explicit CPDF_TransferFunc(CPDF_Document* pDoc); | 56 explicit CPDF_TransferFunc(CPDF_Document* pDoc); |
57 | 57 |
58 FX_COLORREF TranslateColor(FX_COLORREF src) const; | 58 FX_COLORREF TranslateColor(FX_COLORREF src) const; |
59 CFX_DIBSource* TranslateImage(const CFX_DIBSource* pSrc, | 59 CFX_DIBSource* TranslateImage(const CFX_DIBSource* pSrc, bool bAutoDropSrc); |
60 FX_BOOL bAutoDropSrc); | |
61 | 60 |
62 CPDF_Document* const m_pPDFDoc; | 61 CPDF_Document* const m_pPDFDoc; |
63 FX_BOOL m_bIdentity; | 62 bool m_bIdentity; |
64 uint8_t m_Samples[256 * 3]; | 63 uint8_t m_Samples[256 * 3]; |
65 }; | 64 }; |
66 | 65 |
67 class CPDF_DocRenderData { | 66 class CPDF_DocRenderData { |
68 public: | 67 public: |
69 explicit CPDF_DocRenderData(CPDF_Document* pPDFDoc); | 68 explicit CPDF_DocRenderData(CPDF_Document* pPDFDoc); |
70 ~CPDF_DocRenderData(); | 69 ~CPDF_DocRenderData(); |
71 CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); | 70 CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); |
72 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObj); | 71 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObj); |
73 void Clear(FX_BOOL bRelease = FALSE); | 72 void Clear(bool bRelease = false); |
74 void ReleaseCachedType3(CPDF_Type3Font* pFont); | 73 void ReleaseCachedType3(CPDF_Type3Font* pFont); |
75 void ReleaseTransferFunc(CPDF_Object* pObj); | 74 void ReleaseTransferFunc(CPDF_Object* pObj); |
76 | 75 |
77 private: | 76 private: |
78 using CPDF_Type3CacheMap = | 77 using CPDF_Type3CacheMap = |
79 std::map<CPDF_Font*, CPDF_CountedObject<CPDF_Type3Cache>*>; | 78 std::map<CPDF_Font*, CPDF_CountedObject<CPDF_Type3Cache>*>; |
80 using CPDF_TransferFuncMap = | 79 using CPDF_TransferFuncMap = |
81 std::map<CPDF_Object*, CPDF_CountedObject<CPDF_TransferFunc>*>; | 80 std::map<CPDF_Object*, CPDF_CountedObject<CPDF_TransferFunc>*>; |
82 | 81 |
83 CPDF_Document* m_pPDFDoc; | 82 CPDF_Document* m_pPDFDoc; |
84 CPDF_Type3CacheMap m_Type3FaceMap; | 83 CPDF_Type3CacheMap m_Type3FaceMap; |
85 CPDF_TransferFuncMap m_TransferFuncMap; | 84 CPDF_TransferFuncMap m_TransferFuncMap; |
86 }; | 85 }; |
87 | 86 |
88 class CPDF_RenderStatus { | 87 class CPDF_RenderStatus { |
89 public: | 88 public: |
90 CPDF_RenderStatus(); | 89 CPDF_RenderStatus(); |
91 ~CPDF_RenderStatus(); | 90 ~CPDF_RenderStatus(); |
92 | 91 |
93 FX_BOOL Initialize(class CPDF_RenderContext* pContext, | 92 bool Initialize(class CPDF_RenderContext* pContext, |
94 CFX_RenderDevice* pDevice, | 93 CFX_RenderDevice* pDevice, |
95 const CFX_Matrix* pDeviceMatrix, | 94 const CFX_Matrix* pDeviceMatrix, |
96 const CPDF_PageObject* pStopObj, | 95 const CPDF_PageObject* pStopObj, |
97 const CPDF_RenderStatus* pParentStatus, | 96 const CPDF_RenderStatus* pParentStatus, |
98 const CPDF_GraphicStates* pInitialStates, | 97 const CPDF_GraphicStates* pInitialStates, |
99 const CPDF_RenderOptions* pOptions, | 98 const CPDF_RenderOptions* pOptions, |
100 int transparency, | 99 int transparency, |
101 FX_BOOL bDropObjects, | 100 bool bDropObjects, |
102 CPDF_Dictionary* pFormResource = nullptr, | 101 CPDF_Dictionary* pFormResource = nullptr, |
103 FX_BOOL bStdCS = FALSE, | 102 bool bStdCS = false, |
104 CPDF_Type3Char* pType3Char = nullptr, | 103 CPDF_Type3Char* pType3Char = nullptr, |
105 FX_ARGB fill_color = 0, | 104 FX_ARGB fill_color = 0, |
106 uint32_t GroupFamily = 0, | 105 uint32_t GroupFamily = 0, |
107 FX_BOOL bLoadMask = FALSE); | 106 bool bLoadMask = false); |
108 void RenderObjectList(const CPDF_PageObjectHolder* pObjectHolder, | 107 void RenderObjectList(const CPDF_PageObjectHolder* pObjectHolder, |
109 const CFX_Matrix* pObj2Device); | 108 const CFX_Matrix* pObj2Device); |
110 void RenderSingleObject(CPDF_PageObject* pObj, const CFX_Matrix* pObj2Device); | 109 void RenderSingleObject(CPDF_PageObject* pObj, const CFX_Matrix* pObj2Device); |
111 FX_BOOL ContinueSingleObject(CPDF_PageObject* pObj, | 110 bool ContinueSingleObject(CPDF_PageObject* pObj, |
112 const CFX_Matrix* pObj2Device, | 111 const CFX_Matrix* pObj2Device, |
113 IFX_Pause* pPause); | 112 IFX_Pause* pPause); |
114 CPDF_RenderContext* GetContext() { return m_pContext; } | 113 CPDF_RenderContext* GetContext() { return m_pContext; } |
115 | 114 |
116 #if defined _SKIA_SUPPORT_ | 115 #if defined _SKIA_SUPPORT_ |
117 void DebugVerifyDeviceIsPreMultiplied() const; | 116 void DebugVerifyDeviceIsPreMultiplied() const; |
118 #endif | 117 #endif |
119 | 118 |
120 CPDF_RenderOptions m_Options; | 119 CPDF_RenderOptions m_Options; |
121 CPDF_Dictionary* m_pFormResource; | 120 CPDF_Dictionary* m_pFormResource; |
122 CPDF_Dictionary* m_pPageResource; | 121 CPDF_Dictionary* m_pPageResource; |
123 CFX_ArrayTemplate<CPDF_Type3Font*> m_Type3FontCache; | 122 CFX_ArrayTemplate<CPDF_Type3Font*> m_Type3FontCache; |
124 | 123 |
125 protected: | 124 protected: |
126 friend class CPDF_ImageRenderer; | 125 friend class CPDF_ImageRenderer; |
127 friend class CPDF_RenderContext; | 126 friend class CPDF_RenderContext; |
128 | 127 |
129 void ProcessClipPath(CPDF_ClipPath ClipPath, const CFX_Matrix* pObj2Device); | 128 void ProcessClipPath(CPDF_ClipPath ClipPath, const CFX_Matrix* pObj2Device); |
130 void DrawClipPath(CPDF_ClipPath ClipPath, const CFX_Matrix* pObj2Device); | 129 void DrawClipPath(CPDF_ClipPath ClipPath, const CFX_Matrix* pObj2Device); |
131 FX_BOOL ProcessTransparency(CPDF_PageObject* PageObj, | 130 bool ProcessTransparency(CPDF_PageObject* PageObj, |
132 const CFX_Matrix* pObj2Device); | 131 const CFX_Matrix* pObj2Device); |
133 void ProcessObjectNoClip(CPDF_PageObject* PageObj, | 132 void ProcessObjectNoClip(CPDF_PageObject* PageObj, |
134 const CFX_Matrix* pObj2Device); | 133 const CFX_Matrix* pObj2Device); |
135 void DrawObjWithBackground(CPDF_PageObject* pObj, | 134 void DrawObjWithBackground(CPDF_PageObject* pObj, |
136 const CFX_Matrix* pObj2Device); | 135 const CFX_Matrix* pObj2Device); |
137 FX_BOOL DrawObjWithBlend(CPDF_PageObject* pObj, | 136 bool DrawObjWithBlend(CPDF_PageObject* pObj, const CFX_Matrix* pObj2Device); |
138 const CFX_Matrix* pObj2Device); | 137 bool ProcessPath(CPDF_PathObject* pPathObj, const CFX_Matrix* pObj2Device); |
139 FX_BOOL ProcessPath(CPDF_PathObject* pPathObj, const CFX_Matrix* pObj2Device); | |
140 void ProcessPathPattern(CPDF_PathObject* pPathObj, | 138 void ProcessPathPattern(CPDF_PathObject* pPathObj, |
141 const CFX_Matrix* pObj2Device, | 139 const CFX_Matrix* pObj2Device, |
142 int& filltype, | 140 int& filltype, |
143 FX_BOOL& bStroke); | 141 bool& bStroke); |
144 void DrawPathWithPattern(CPDF_PathObject* pPathObj, | 142 void DrawPathWithPattern(CPDF_PathObject* pPathObj, |
145 const CFX_Matrix* pObj2Device, | 143 const CFX_Matrix* pObj2Device, |
146 const CPDF_Color* pColor, | 144 const CPDF_Color* pColor, |
147 FX_BOOL bStroke); | 145 bool bStroke); |
148 void DrawTilingPattern(CPDF_TilingPattern* pPattern, | 146 void DrawTilingPattern(CPDF_TilingPattern* pPattern, |
149 CPDF_PageObject* pPageObj, | 147 CPDF_PageObject* pPageObj, |
150 const CFX_Matrix* pObj2Device, | 148 const CFX_Matrix* pObj2Device, |
151 FX_BOOL bStroke); | 149 bool bStroke); |
152 void DrawShadingPattern(CPDF_ShadingPattern* pPattern, | 150 void DrawShadingPattern(CPDF_ShadingPattern* pPattern, |
153 const CPDF_PageObject* pPageObj, | 151 const CPDF_PageObject* pPageObj, |
154 const CFX_Matrix* pObj2Device, | 152 const CFX_Matrix* pObj2Device, |
155 FX_BOOL bStroke); | 153 bool bStroke); |
156 FX_BOOL SelectClipPath(const CPDF_PathObject* pPathObj, | 154 bool SelectClipPath(const CPDF_PathObject* pPathObj, |
157 const CFX_Matrix* pObj2Device, | 155 const CFX_Matrix* pObj2Device, |
158 FX_BOOL bStroke); | 156 bool bStroke); |
159 FX_BOOL ProcessImage(CPDF_ImageObject* pImageObj, | 157 bool ProcessImage(CPDF_ImageObject* pImageObj, const CFX_Matrix* pObj2Device); |
160 const CFX_Matrix* pObj2Device); | 158 bool OutputBitmapAlpha(CPDF_ImageObject* pImageObj, |
161 FX_BOOL OutputBitmapAlpha(CPDF_ImageObject* pImageObj, | 159 const CFX_Matrix* pImage2Device); |
162 const CFX_Matrix* pImage2Device); | 160 bool OutputImage(CPDF_ImageObject* pImageObj, |
163 FX_BOOL OutputImage(CPDF_ImageObject* pImageObj, | 161 const CFX_Matrix* pImage2Device); |
164 const CFX_Matrix* pImage2Device); | 162 bool OutputDIBSource(const CFX_DIBSource* pOutputBitmap, |
165 FX_BOOL OutputDIBSource(const CFX_DIBSource* pOutputBitmap, | 163 FX_ARGB fill_argb, |
166 FX_ARGB fill_argb, | 164 int bitmap_alpha, |
167 int bitmap_alpha, | 165 const CFX_Matrix* pImage2Device, |
168 const CFX_Matrix* pImage2Device, | 166 CPDF_ImageCacheEntry* pImageCache, |
169 CPDF_ImageCacheEntry* pImageCache, | 167 uint32_t flags); |
170 uint32_t flags); | |
171 void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, | 168 void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, |
172 int left, | 169 int left, |
173 int top, | 170 int top, |
174 FX_ARGB mask_argb, | 171 FX_ARGB mask_argb, |
175 int bitmap_alpha, | 172 int bitmap_alpha, |
176 int blend_mode, | 173 int blend_mode, |
177 int bIsolated); | 174 int bIsolated); |
178 void ProcessShading(const CPDF_ShadingObject* pShadingObj, | 175 void ProcessShading(const CPDF_ShadingObject* pShadingObj, |
179 const CFX_Matrix* pObj2Device); | 176 const CFX_Matrix* pObj2Device); |
180 void DrawShading(CPDF_ShadingPattern* pPattern, | 177 void DrawShading(CPDF_ShadingPattern* pPattern, |
181 CFX_Matrix* pMatrix, | 178 CFX_Matrix* pMatrix, |
182 FX_RECT& clip_rect, | 179 FX_RECT& clip_rect, |
183 int alpha, | 180 int alpha, |
184 FX_BOOL bAlphaMode); | 181 bool bAlphaMode); |
185 FX_BOOL ProcessType3Text(CPDF_TextObject* textobj, | 182 bool ProcessType3Text(CPDF_TextObject* textobj, |
186 const CFX_Matrix* pObj2Device); | 183 const CFX_Matrix* pObj2Device); |
187 FX_BOOL ProcessText(CPDF_TextObject* textobj, | 184 bool ProcessText(CPDF_TextObject* textobj, |
188 const CFX_Matrix* pObj2Device, | 185 const CFX_Matrix* pObj2Device, |
189 CFX_PathData* pClippingPath); | 186 CFX_PathData* pClippingPath); |
190 void DrawTextPathWithPattern(const CPDF_TextObject* textobj, | 187 void DrawTextPathWithPattern(const CPDF_TextObject* textobj, |
191 const CFX_Matrix* pObj2Device, | 188 const CFX_Matrix* pObj2Device, |
192 CPDF_Font* pFont, | 189 CPDF_Font* pFont, |
193 FX_FLOAT font_size, | 190 FX_FLOAT font_size, |
194 const CFX_Matrix* pTextMatrix, | 191 const CFX_Matrix* pTextMatrix, |
195 FX_BOOL bFill, | 192 bool bFill, |
196 FX_BOOL bStroke); | 193 bool bStroke); |
197 FX_BOOL ProcessForm(const CPDF_FormObject* pFormObj, | 194 bool ProcessForm(const CPDF_FormObject* pFormObj, |
198 const CFX_Matrix* pObj2Device); | 195 const CFX_Matrix* pObj2Device); |
199 CFX_DIBitmap* GetBackdrop(const CPDF_PageObject* pObj, | 196 CFX_DIBitmap* GetBackdrop(const CPDF_PageObject* pObj, |
200 const FX_RECT& rect, | 197 const FX_RECT& rect, |
201 int& left, | 198 int& left, |
202 int& top, | 199 int& top, |
203 FX_BOOL bBackAlphaRequired); | 200 bool bBackAlphaRequired); |
204 CFX_DIBitmap* LoadSMask(CPDF_Dictionary* pSMaskDict, | 201 CFX_DIBitmap* LoadSMask(CPDF_Dictionary* pSMaskDict, |
205 FX_RECT* pClipRect, | 202 FX_RECT* pClipRect, |
206 const CFX_Matrix* pMatrix); | 203 const CFX_Matrix* pMatrix); |
207 void Init(CPDF_RenderContext* pParent); | 204 void Init(CPDF_RenderContext* pParent); |
208 static class CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); | 205 static class CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); |
209 static CPDF_GraphicStates* CloneObjStates(const CPDF_GraphicStates* pPathObj, | 206 static CPDF_GraphicStates* CloneObjStates(const CPDF_GraphicStates* pPathObj, |
210 FX_BOOL bStroke); | 207 bool bStroke); |
211 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObject) const; | 208 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObject) const; |
212 FX_ARGB GetFillArgb(CPDF_PageObject* pObj, FX_BOOL bType3 = FALSE) const; | 209 FX_ARGB GetFillArgb(CPDF_PageObject* pObj, bool bType3 = false) const; |
213 FX_ARGB GetStrokeArgb(CPDF_PageObject* pObj) const; | 210 FX_ARGB GetStrokeArgb(CPDF_PageObject* pObj) const; |
214 FX_BOOL GetObjectClippedRect(const CPDF_PageObject* pObj, | 211 bool GetObjectClippedRect(const CPDF_PageObject* pObj, |
215 const CFX_Matrix* pObj2Device, | 212 const CFX_Matrix* pObj2Device, |
216 FX_BOOL bLogical, | 213 bool bLogical, |
217 FX_RECT& rect) const; | 214 FX_RECT& rect) const; |
218 void GetScaledMatrix(CFX_Matrix& matrix) const; | 215 void GetScaledMatrix(CFX_Matrix& matrix) const; |
219 | 216 |
220 static const int kRenderMaxRecursionDepth = 64; | 217 static const int kRenderMaxRecursionDepth = 64; |
221 static int s_CurrentRecursionDepth; | 218 static int s_CurrentRecursionDepth; |
222 | 219 |
223 CPDF_RenderContext* m_pContext; | 220 CPDF_RenderContext* m_pContext; |
224 FX_BOOL m_bStopped; | 221 bool m_bStopped; |
225 CFX_RenderDevice* m_pDevice; | 222 CFX_RenderDevice* m_pDevice; |
226 CFX_Matrix m_DeviceMatrix; | 223 CFX_Matrix m_DeviceMatrix; |
227 CPDF_ClipPath m_LastClipPath; | 224 CPDF_ClipPath m_LastClipPath; |
228 const CPDF_PageObject* m_pCurObj; | 225 const CPDF_PageObject* m_pCurObj; |
229 const CPDF_PageObject* m_pStopObj; | 226 const CPDF_PageObject* m_pStopObj; |
230 CPDF_GraphicStates m_InitialStates; | 227 CPDF_GraphicStates m_InitialStates; |
231 int m_HalftoneLimit; | 228 int m_HalftoneLimit; |
232 std::unique_ptr<CPDF_ImageRenderer> m_pImageRenderer; | 229 std::unique_ptr<CPDF_ImageRenderer> m_pImageRenderer; |
233 FX_BOOL m_bPrint; | 230 bool m_bPrint; |
234 int m_Transparency; | 231 int m_Transparency; |
235 FX_BOOL m_bDropObjects; | 232 bool m_bDropObjects; |
236 FX_BOOL m_bStdCS; | 233 bool m_bStdCS; |
237 uint32_t m_GroupFamily; | 234 uint32_t m_GroupFamily; |
238 FX_BOOL m_bLoadMask; | 235 bool m_bLoadMask; |
239 CPDF_Type3Char* m_pType3Char; | 236 CPDF_Type3Char* m_pType3Char; |
240 FX_ARGB m_T3FillColor; | 237 FX_ARGB m_T3FillColor; |
241 int m_curBlend; | 238 int m_curBlend; |
242 }; | 239 }; |
243 | 240 |
244 class CPDF_ImageLoader { | 241 class CPDF_ImageLoader { |
245 public: | 242 public: |
246 CPDF_ImageLoader() | 243 CPDF_ImageLoader() |
247 : m_pBitmap(nullptr), | 244 : m_pBitmap(nullptr), |
248 m_pMask(nullptr), | 245 m_pMask(nullptr), |
249 m_MatteColor(0), | 246 m_MatteColor(0), |
250 m_bCached(FALSE), | 247 m_bCached(false), |
251 m_nDownsampleWidth(0), | 248 m_nDownsampleWidth(0), |
252 m_nDownsampleHeight(0) {} | 249 m_nDownsampleHeight(0) {} |
253 ~CPDF_ImageLoader(); | 250 ~CPDF_ImageLoader(); |
254 | 251 |
255 FX_BOOL Start(const CPDF_ImageObject* pImage, | 252 bool Start(const CPDF_ImageObject* pImage, |
256 CPDF_PageRenderCache* pCache, | 253 CPDF_PageRenderCache* pCache, |
257 std::unique_ptr<CPDF_ImageLoaderHandle>* pLoadHandle, | 254 std::unique_ptr<CPDF_ImageLoaderHandle>* pLoadHandle, |
258 FX_BOOL bStdCS = FALSE, | 255 bool bStdCS = false, |
259 uint32_t GroupFamily = 0, | 256 uint32_t GroupFamily = 0, |
260 FX_BOOL bLoadMask = FALSE, | 257 bool bLoadMask = false, |
261 CPDF_RenderStatus* pRenderStatus = nullptr, | 258 CPDF_RenderStatus* pRenderStatus = nullptr, |
262 int32_t nDownsampleWidth = 0, | 259 int32_t nDownsampleWidth = 0, |
263 int32_t nDownsampleHeight = 0); | 260 int32_t nDownsampleHeight = 0); |
264 FX_BOOL Continue(CPDF_ImageLoaderHandle* LoadHandle, IFX_Pause* pPause); | 261 bool Continue(CPDF_ImageLoaderHandle* LoadHandle, IFX_Pause* pPause); |
265 | 262 |
266 CFX_DIBSource* m_pBitmap; | 263 CFX_DIBSource* m_pBitmap; |
267 CFX_DIBSource* m_pMask; | 264 CFX_DIBSource* m_pMask; |
268 uint32_t m_MatteColor; | 265 uint32_t m_MatteColor; |
269 FX_BOOL m_bCached; | 266 bool m_bCached; |
270 | 267 |
271 protected: | 268 protected: |
272 int32_t m_nDownsampleWidth; | 269 int32_t m_nDownsampleWidth; |
273 int32_t m_nDownsampleHeight; | 270 int32_t m_nDownsampleHeight; |
274 }; | 271 }; |
275 | 272 |
276 class CPDF_ImageLoaderHandle { | 273 class CPDF_ImageLoaderHandle { |
277 public: | 274 public: |
278 CPDF_ImageLoaderHandle(); | 275 CPDF_ImageLoaderHandle(); |
279 ~CPDF_ImageLoaderHandle(); | 276 ~CPDF_ImageLoaderHandle(); |
280 | 277 |
281 FX_BOOL Start(CPDF_ImageLoader* pImageLoader, | 278 bool Start(CPDF_ImageLoader* pImageLoader, |
282 const CPDF_ImageObject* pImage, | 279 const CPDF_ImageObject* pImage, |
283 CPDF_PageRenderCache* pCache, | 280 CPDF_PageRenderCache* pCache, |
284 FX_BOOL bStdCS = FALSE, | 281 bool bStdCS = false, |
285 uint32_t GroupFamily = 0, | 282 uint32_t GroupFamily = 0, |
286 FX_BOOL bLoadMask = FALSE, | 283 bool bLoadMask = false, |
287 CPDF_RenderStatus* pRenderStatus = nullptr, | 284 CPDF_RenderStatus* pRenderStatus = nullptr, |
288 int32_t nDownsampleWidth = 0, | 285 int32_t nDownsampleWidth = 0, |
289 int32_t nDownsampleHeight = 0); | 286 int32_t nDownsampleHeight = 0); |
290 FX_BOOL Continue(IFX_Pause* pPause); | 287 bool Continue(IFX_Pause* pPause); |
291 | 288 |
292 protected: | 289 protected: |
293 void HandleFailure(); | 290 void HandleFailure(); |
294 | 291 |
295 CPDF_ImageLoader* m_pImageLoader; | 292 CPDF_ImageLoader* m_pImageLoader; |
296 CPDF_PageRenderCache* m_pCache; | 293 CPDF_PageRenderCache* m_pCache; |
297 CPDF_ImageObject* m_pImage; | 294 CPDF_ImageObject* m_pImage; |
298 int32_t m_nDownsampleWidth; | 295 int32_t m_nDownsampleWidth; |
299 int32_t m_nDownsampleHeight; | 296 int32_t m_nDownsampleHeight; |
300 }; | 297 }; |
301 | 298 |
302 class CPDF_ImageRenderer { | 299 class CPDF_ImageRenderer { |
303 public: | 300 public: |
304 CPDF_ImageRenderer(); | 301 CPDF_ImageRenderer(); |
305 ~CPDF_ImageRenderer(); | 302 ~CPDF_ImageRenderer(); |
306 | 303 |
307 FX_BOOL Start(CPDF_RenderStatus* pStatus, | 304 bool Start(CPDF_RenderStatus* pStatus, |
308 CPDF_PageObject* pObj, | 305 CPDF_PageObject* pObj, |
309 const CFX_Matrix* pObj2Device, | 306 const CFX_Matrix* pObj2Device, |
310 FX_BOOL bStdCS, | 307 bool bStdCS, |
311 int blendType = FXDIB_BLEND_NORMAL); | 308 int blendType = FXDIB_BLEND_NORMAL); |
312 FX_BOOL Continue(IFX_Pause* pPause); | 309 bool Continue(IFX_Pause* pPause); |
313 | 310 |
314 FX_BOOL Start(CPDF_RenderStatus* pStatus, | 311 bool Start(CPDF_RenderStatus* pStatus, |
315 const CFX_DIBSource* pDIBSource, | 312 const CFX_DIBSource* pDIBSource, |
316 FX_ARGB bitmap_argb, | 313 FX_ARGB bitmap_argb, |
317 int bitmap_alpha, | 314 int bitmap_alpha, |
318 const CFX_Matrix* pImage2Device, | 315 const CFX_Matrix* pImage2Device, |
319 uint32_t flags, | 316 uint32_t flags, |
320 FX_BOOL bStdCS, | 317 bool bStdCS, |
321 int blendType = FXDIB_BLEND_NORMAL); | 318 int blendType = FXDIB_BLEND_NORMAL); |
322 | 319 |
323 FX_BOOL m_Result; | 320 bool m_Result; |
324 | 321 |
325 protected: | 322 protected: |
326 FX_BOOL StartBitmapAlpha(); | 323 bool StartBitmapAlpha(); |
327 FX_BOOL StartDIBSource(); | 324 bool StartDIBSource(); |
328 FX_BOOL StartRenderDIBSource(); | 325 bool StartRenderDIBSource(); |
329 FX_BOOL StartLoadDIBSource(); | 326 bool StartLoadDIBSource(); |
330 FX_BOOL DrawMaskedImage(); | 327 bool DrawMaskedImage(); |
331 FX_BOOL DrawPatternImage(const CFX_Matrix* pObj2Device); | 328 bool DrawPatternImage(const CFX_Matrix* pObj2Device); |
332 | 329 |
333 CPDF_RenderStatus* m_pRenderStatus; | 330 CPDF_RenderStatus* m_pRenderStatus; |
334 CPDF_ImageObject* m_pImageObject; | 331 CPDF_ImageObject* m_pImageObject; |
335 int m_Status; | 332 int m_Status; |
336 const CFX_Matrix* m_pObj2Device; | 333 const CFX_Matrix* m_pObj2Device; |
337 CFX_Matrix m_ImageMatrix; | 334 CFX_Matrix m_ImageMatrix; |
338 CPDF_ImageLoader m_Loader; | 335 CPDF_ImageLoader m_Loader; |
339 const CFX_DIBSource* m_pDIBSource; | 336 const CFX_DIBSource* m_pDIBSource; |
340 std::unique_ptr<CFX_DIBitmap> m_pClone; | 337 std::unique_ptr<CFX_DIBitmap> m_pClone; |
341 int m_BitmapAlpha; | 338 int m_BitmapAlpha; |
342 FX_BOOL m_bPatternColor; | 339 bool m_bPatternColor; |
343 CPDF_Pattern* m_pPattern; | 340 CPDF_Pattern* m_pPattern; |
344 FX_ARGB m_FillArgb; | 341 FX_ARGB m_FillArgb; |
345 uint32_t m_Flags; | 342 uint32_t m_Flags; |
346 std::unique_ptr<CFX_ImageTransformer> m_pTransformer; | 343 std::unique_ptr<CFX_ImageTransformer> m_pTransformer; |
347 void* m_DeviceHandle; | 344 void* m_DeviceHandle; |
348 std::unique_ptr<CPDF_ImageLoaderHandle> m_LoadHandle; | 345 std::unique_ptr<CPDF_ImageLoaderHandle> m_LoadHandle; |
349 FX_BOOL m_bStdCS; | 346 bool m_bStdCS; |
350 int m_BlendType; | 347 int m_BlendType; |
351 }; | 348 }; |
352 | 349 |
353 class CPDF_ScaledRenderBuffer { | 350 class CPDF_ScaledRenderBuffer { |
354 public: | 351 public: |
355 CPDF_ScaledRenderBuffer(); | 352 CPDF_ScaledRenderBuffer(); |
356 ~CPDF_ScaledRenderBuffer(); | 353 ~CPDF_ScaledRenderBuffer(); |
357 | 354 |
358 FX_BOOL Initialize(CPDF_RenderContext* pContext, | 355 bool Initialize(CPDF_RenderContext* pContext, |
359 CFX_RenderDevice* pDevice, | 356 CFX_RenderDevice* pDevice, |
360 const FX_RECT& pRect, | 357 const FX_RECT& pRect, |
361 const CPDF_PageObject* pObj, | 358 const CPDF_PageObject* pObj, |
362 const CPDF_RenderOptions* pOptions = nullptr, | 359 const CPDF_RenderOptions* pOptions = nullptr, |
363 int max_dpi = 0); | 360 int max_dpi = 0); |
364 CFX_RenderDevice* GetDevice() { | 361 CFX_RenderDevice* GetDevice() { |
365 return m_pBitmapDevice ? m_pBitmapDevice.get() : m_pDevice; | 362 return m_pBitmapDevice ? m_pBitmapDevice.get() : m_pDevice; |
366 } | 363 } |
367 CFX_Matrix* GetMatrix() { return &m_Matrix; } | 364 CFX_Matrix* GetMatrix() { return &m_Matrix; } |
368 void OutputToDevice(); | 365 void OutputToDevice(); |
369 | 366 |
370 private: | 367 private: |
371 CFX_RenderDevice* m_pDevice; | 368 CFX_RenderDevice* m_pDevice; |
372 CPDF_RenderContext* m_pContext; | 369 CPDF_RenderContext* m_pContext; |
373 FX_RECT m_Rect; | 370 FX_RECT m_Rect; |
374 const CPDF_PageObject* m_pObject; | 371 const CPDF_PageObject* m_pObject; |
375 std::unique_ptr<CFX_FxgeDevice> m_pBitmapDevice; | 372 std::unique_ptr<CFX_FxgeDevice> m_pBitmapDevice; |
376 CFX_Matrix m_Matrix; | 373 CFX_Matrix m_Matrix; |
377 }; | 374 }; |
378 | 375 |
379 class CPDF_DeviceBuffer { | 376 class CPDF_DeviceBuffer { |
380 public: | 377 public: |
381 CPDF_DeviceBuffer(); | 378 CPDF_DeviceBuffer(); |
382 ~CPDF_DeviceBuffer(); | 379 ~CPDF_DeviceBuffer(); |
383 FX_BOOL Initialize(CPDF_RenderContext* pContext, | 380 bool Initialize(CPDF_RenderContext* pContext, |
384 CFX_RenderDevice* pDevice, | 381 CFX_RenderDevice* pDevice, |
385 FX_RECT* pRect, | 382 FX_RECT* pRect, |
386 const CPDF_PageObject* pObj, | 383 const CPDF_PageObject* pObj, |
387 int max_dpi = 0); | 384 int max_dpi = 0); |
388 void OutputToDevice(); | 385 void OutputToDevice(); |
389 CFX_DIBitmap* GetBitmap() const { return m_pBitmap.get(); } | 386 CFX_DIBitmap* GetBitmap() const { return m_pBitmap.get(); } |
390 const CFX_Matrix* GetMatrix() const { return &m_Matrix; } | 387 const CFX_Matrix* GetMatrix() const { return &m_Matrix; } |
391 | 388 |
392 private: | 389 private: |
393 CFX_RenderDevice* m_pDevice; | 390 CFX_RenderDevice* m_pDevice; |
394 CPDF_RenderContext* m_pContext; | 391 CPDF_RenderContext* m_pContext; |
395 FX_RECT m_Rect; | 392 FX_RECT m_Rect; |
396 const CPDF_PageObject* m_pObject; | 393 const CPDF_PageObject* m_pObject; |
397 std::unique_ptr<CFX_DIBitmap> m_pBitmap; | 394 std::unique_ptr<CFX_DIBitmap> m_pBitmap; |
398 CFX_Matrix m_Matrix; | 395 CFX_Matrix m_Matrix; |
399 }; | 396 }; |
400 | 397 |
401 class CPDF_ImageCacheEntry { | 398 class CPDF_ImageCacheEntry { |
402 public: | 399 public: |
403 CPDF_ImageCacheEntry(CPDF_Document* pDoc, CPDF_Stream* pStream); | 400 CPDF_ImageCacheEntry(CPDF_Document* pDoc, CPDF_Stream* pStream); |
404 ~CPDF_ImageCacheEntry(); | 401 ~CPDF_ImageCacheEntry(); |
405 | 402 |
406 void Reset(const CFX_DIBitmap* pBitmap); | 403 void Reset(const CFX_DIBitmap* pBitmap); |
407 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap, | 404 bool GetCachedBitmap(CFX_DIBSource*& pBitmap, |
408 CFX_DIBSource*& pMask, | 405 CFX_DIBSource*& pMask, |
409 uint32_t& MatteColor, | 406 uint32_t& MatteColor, |
410 CPDF_Dictionary* pPageResources, | 407 CPDF_Dictionary* pPageResources, |
411 FX_BOOL bStdCS = FALSE, | 408 bool bStdCS = false, |
412 uint32_t GroupFamily = 0, | 409 uint32_t GroupFamily = 0, |
413 FX_BOOL bLoadMask = FALSE, | 410 bool bLoadMask = false, |
414 CPDF_RenderStatus* pRenderStatus = nullptr, | 411 CPDF_RenderStatus* pRenderStatus = nullptr, |
415 int32_t downsampleWidth = 0, | 412 int32_t downsampleWidth = 0, |
416 int32_t downsampleHeight = 0); | 413 int32_t downsampleHeight = 0); |
417 uint32_t EstimateSize() const { return m_dwCacheSize; } | 414 uint32_t EstimateSize() const { return m_dwCacheSize; } |
418 uint32_t GetTimeCount() const { return m_dwTimeCount; } | 415 uint32_t GetTimeCount() const { return m_dwTimeCount; } |
419 CPDF_Stream* GetStream() const { return m_pStream; } | 416 CPDF_Stream* GetStream() const { return m_pStream; } |
420 void SetTimeCount(uint32_t dwTimeCount) { m_dwTimeCount = dwTimeCount; } | 417 void SetTimeCount(uint32_t dwTimeCount) { m_dwTimeCount = dwTimeCount; } |
421 int m_dwTimeCount; | 418 int m_dwTimeCount; |
422 | 419 |
423 public: | 420 public: |
424 int StartGetCachedBitmap(CPDF_Dictionary* pFormResources, | 421 int StartGetCachedBitmap(CPDF_Dictionary* pFormResources, |
425 CPDF_Dictionary* pPageResources, | 422 CPDF_Dictionary* pPageResources, |
426 FX_BOOL bStdCS = FALSE, | 423 bool bStdCS = false, |
427 uint32_t GroupFamily = 0, | 424 uint32_t GroupFamily = 0, |
428 FX_BOOL bLoadMask = FALSE, | 425 bool bLoadMask = false, |
429 CPDF_RenderStatus* pRenderStatus = nullptr, | 426 CPDF_RenderStatus* pRenderStatus = nullptr, |
430 int32_t downsampleWidth = 0, | 427 int32_t downsampleWidth = 0, |
431 int32_t downsampleHeight = 0); | 428 int32_t downsampleHeight = 0); |
432 int Continue(IFX_Pause* pPause); | 429 int Continue(IFX_Pause* pPause); |
433 CFX_DIBSource* DetachBitmap(); | 430 CFX_DIBSource* DetachBitmap(); |
434 CFX_DIBSource* DetachMask(); | 431 CFX_DIBSource* DetachMask(); |
435 CFX_DIBSource* m_pCurBitmap; | 432 CFX_DIBSource* m_pCurBitmap; |
436 CFX_DIBSource* m_pCurMask; | 433 CFX_DIBSource* m_pCurMask; |
437 uint32_t m_MatteColor; | 434 uint32_t m_MatteColor; |
438 CPDF_RenderStatus* m_pRenderStatus; | 435 CPDF_RenderStatus* m_pRenderStatus; |
(...skipping 13 matching lines...) Expand all Loading... |
452 FX_FLOAT m_DecodeStep; | 449 FX_FLOAT m_DecodeStep; |
453 int m_ColorKeyMin; | 450 int m_ColorKeyMin; |
454 int m_ColorKeyMax; | 451 int m_ColorKeyMax; |
455 } DIB_COMP_DATA; | 452 } DIB_COMP_DATA; |
456 | 453 |
457 class CPDF_DIBSource : public CFX_DIBSource { | 454 class CPDF_DIBSource : public CFX_DIBSource { |
458 public: | 455 public: |
459 CPDF_DIBSource(); | 456 CPDF_DIBSource(); |
460 ~CPDF_DIBSource() override; | 457 ~CPDF_DIBSource() override; |
461 | 458 |
462 FX_BOOL Load(CPDF_Document* pDoc, | 459 bool Load(CPDF_Document* pDoc, |
463 const CPDF_Stream* pStream, | 460 const CPDF_Stream* pStream, |
464 CPDF_DIBSource** ppMask, | 461 CPDF_DIBSource** ppMask, |
465 uint32_t* pMatteColor, | 462 uint32_t* pMatteColor, |
466 CPDF_Dictionary* pFormResources, | 463 CPDF_Dictionary* pFormResources, |
467 CPDF_Dictionary* pPageResources, | 464 CPDF_Dictionary* pPageResources, |
468 FX_BOOL bStdCS = FALSE, | 465 bool bStdCS = false, |
469 uint32_t GroupFamily = 0, | 466 uint32_t GroupFamily = 0, |
470 FX_BOOL bLoadMask = FALSE); | 467 bool bLoadMask = false); |
471 | 468 |
472 // CFX_DIBSource | 469 // CFX_DIBSource |
473 FX_BOOL SkipToScanline(int line, IFX_Pause* pPause) const override; | 470 bool SkipToScanline(int line, IFX_Pause* pPause) const override; |
474 uint8_t* GetBuffer() const override; | 471 uint8_t* GetBuffer() const override; |
475 const uint8_t* GetScanline(int line) const override; | 472 const uint8_t* GetScanline(int line) const override; |
476 void DownSampleScanline(int line, | 473 void DownSampleScanline(int line, |
477 uint8_t* dest_scan, | 474 uint8_t* dest_scan, |
478 int dest_bpp, | 475 int dest_bpp, |
479 int dest_width, | 476 int dest_width, |
480 FX_BOOL bFlipX, | 477 bool bFlipX, |
481 int clip_left, | 478 int clip_left, |
482 int clip_width) const override; | 479 int clip_width) const override; |
483 | 480 |
484 CFX_DIBitmap* GetBitmap() const; | 481 CFX_DIBitmap* GetBitmap() const; |
485 void ReleaseBitmap(CFX_DIBitmap* pBitmap) const; | 482 void ReleaseBitmap(CFX_DIBitmap* pBitmap) const; |
486 uint32_t GetMatteColor() const { return m_MatteColor; } | 483 uint32_t GetMatteColor() const { return m_MatteColor; } |
487 | 484 |
488 int StartLoadDIBSource(CPDF_Document* pDoc, | 485 int StartLoadDIBSource(CPDF_Document* pDoc, |
489 const CPDF_Stream* pStream, | 486 const CPDF_Stream* pStream, |
490 FX_BOOL bHasMask, | 487 bool bHasMask, |
491 CPDF_Dictionary* pFormResources, | 488 CPDF_Dictionary* pFormResources, |
492 CPDF_Dictionary* pPageResources, | 489 CPDF_Dictionary* pPageResources, |
493 FX_BOOL bStdCS = FALSE, | 490 bool bStdCS = false, |
494 uint32_t GroupFamily = 0, | 491 uint32_t GroupFamily = 0, |
495 FX_BOOL bLoadMask = FALSE); | 492 bool bLoadMask = false); |
496 int ContinueLoadDIBSource(IFX_Pause* pPause); | 493 int ContinueLoadDIBSource(IFX_Pause* pPause); |
497 int StratLoadMask(); | 494 int StratLoadMask(); |
498 int StartLoadMaskDIB(); | 495 int StartLoadMaskDIB(); |
499 int ContinueLoadMaskDIB(IFX_Pause* pPause); | 496 int ContinueLoadMaskDIB(IFX_Pause* pPause); |
500 int ContinueToLoadMask(); | 497 int ContinueToLoadMask(); |
501 CPDF_DIBSource* DetachMask(); | 498 CPDF_DIBSource* DetachMask(); |
502 | 499 |
503 private: | 500 private: |
504 bool LoadColorInfo(const CPDF_Dictionary* pFormResources, | 501 bool LoadColorInfo(const CPDF_Dictionary* pFormResources, |
505 const CPDF_Dictionary* pPageResources); | 502 const CPDF_Dictionary* pPageResources); |
506 DIB_COMP_DATA* GetDecodeAndMaskArray(FX_BOOL& bDefaultDecode, | 503 DIB_COMP_DATA* GetDecodeAndMaskArray(bool& bDefaultDecode, bool& bColorKey); |
507 FX_BOOL& bColorKey); | |
508 CPDF_DIBSource* LoadMask(uint32_t& MatteColor); | 504 CPDF_DIBSource* LoadMask(uint32_t& MatteColor); |
509 CPDF_DIBSource* LoadMaskDIB(CPDF_Stream* pMask); | 505 CPDF_DIBSource* LoadMaskDIB(CPDF_Stream* pMask); |
510 void LoadJpxBitmap(); | 506 void LoadJpxBitmap(); |
511 void LoadPalette(); | 507 void LoadPalette(); |
512 int CreateDecoder(); | 508 int CreateDecoder(); |
513 void TranslateScanline24bpp(uint8_t* dest_scan, | 509 void TranslateScanline24bpp(uint8_t* dest_scan, |
514 const uint8_t* src_scan) const; | 510 const uint8_t* src_scan) const; |
515 void ValidateDictParam(); | 511 void ValidateDictParam(); |
516 void DownSampleScanline1Bit(int orig_Bpp, | 512 void DownSampleScanline1Bit(int orig_Bpp, |
517 int dest_Bpp, | 513 int dest_Bpp, |
518 uint32_t src_width, | 514 uint32_t src_width, |
519 const uint8_t* pSrcLine, | 515 const uint8_t* pSrcLine, |
520 uint8_t* dest_scan, | 516 uint8_t* dest_scan, |
521 int dest_width, | 517 int dest_width, |
522 FX_BOOL bFlipX, | 518 bool bFlipX, |
523 int clip_left, | 519 int clip_left, |
524 int clip_width) const; | 520 int clip_width) const; |
525 void DownSampleScanline8Bit(int orig_Bpp, | 521 void DownSampleScanline8Bit(int orig_Bpp, |
526 int dest_Bpp, | 522 int dest_Bpp, |
527 uint32_t src_width, | 523 uint32_t src_width, |
528 const uint8_t* pSrcLine, | 524 const uint8_t* pSrcLine, |
529 uint8_t* dest_scan, | 525 uint8_t* dest_scan, |
530 int dest_width, | 526 int dest_width, |
531 FX_BOOL bFlipX, | 527 bool bFlipX, |
532 int clip_left, | 528 int clip_left, |
533 int clip_width) const; | 529 int clip_width) const; |
534 void DownSampleScanline32Bit(int orig_Bpp, | 530 void DownSampleScanline32Bit(int orig_Bpp, |
535 int dest_Bpp, | 531 int dest_Bpp, |
536 uint32_t src_width, | 532 uint32_t src_width, |
537 const uint8_t* pSrcLine, | 533 const uint8_t* pSrcLine, |
538 uint8_t* dest_scan, | 534 uint8_t* dest_scan, |
539 int dest_width, | 535 int dest_width, |
540 FX_BOOL bFlipX, | 536 bool bFlipX, |
541 int clip_left, | 537 int clip_left, |
542 int clip_width) const; | 538 int clip_width) const; |
543 FX_BOOL TransMask() const; | 539 bool TransMask() const; |
544 | 540 |
545 CPDF_Document* m_pDocument; | 541 CPDF_Document* m_pDocument; |
546 const CPDF_Stream* m_pStream; | 542 const CPDF_Stream* m_pStream; |
547 std::unique_ptr<CPDF_StreamAcc> m_pStreamAcc; | 543 std::unique_ptr<CPDF_StreamAcc> m_pStreamAcc; |
548 const CPDF_Dictionary* m_pDict; | 544 const CPDF_Dictionary* m_pDict; |
549 CPDF_ColorSpace* m_pColorSpace; | 545 CPDF_ColorSpace* m_pColorSpace; |
550 uint32_t m_Family; | 546 uint32_t m_Family; |
551 uint32_t m_bpc; | 547 uint32_t m_bpc; |
552 uint32_t m_bpc_orig; | 548 uint32_t m_bpc_orig; |
553 uint32_t m_nComponents; | 549 uint32_t m_nComponents; |
554 uint32_t m_GroupFamily; | 550 uint32_t m_GroupFamily; |
555 uint32_t m_MatteColor; | 551 uint32_t m_MatteColor; |
556 FX_BOOL m_bLoadMask; | 552 bool m_bLoadMask; |
557 FX_BOOL m_bDefaultDecode; | 553 bool m_bDefaultDecode; |
558 FX_BOOL m_bImageMask; | 554 bool m_bImageMask; |
559 FX_BOOL m_bDoBpcCheck; | 555 bool m_bDoBpcCheck; |
560 FX_BOOL m_bColorKey; | 556 bool m_bColorKey; |
561 FX_BOOL m_bHasMask; | 557 bool m_bHasMask; |
562 FX_BOOL m_bStdCS; | 558 bool m_bStdCS; |
563 DIB_COMP_DATA* m_pCompData; | 559 DIB_COMP_DATA* m_pCompData; |
564 uint8_t* m_pLineBuf; | 560 uint8_t* m_pLineBuf; |
565 uint8_t* m_pMaskedLine; | 561 uint8_t* m_pMaskedLine; |
566 std::unique_ptr<CFX_DIBitmap> m_pCachedBitmap; | 562 std::unique_ptr<CFX_DIBitmap> m_pCachedBitmap; |
567 std::unique_ptr<CCodec_ScanlineDecoder> m_pDecoder; | 563 std::unique_ptr<CCodec_ScanlineDecoder> m_pDecoder; |
568 CPDF_DIBSource* m_pMask; | 564 CPDF_DIBSource* m_pMask; |
569 std::unique_ptr<CPDF_StreamAcc> m_pGlobalStream; | 565 std::unique_ptr<CPDF_StreamAcc> m_pGlobalStream; |
570 std::unique_ptr<CCodec_Jbig2Context> m_pJbig2Context; | 566 std::unique_ptr<CCodec_Jbig2Context> m_pJbig2Context; |
571 CPDF_Stream* m_pMaskStream; | 567 CPDF_Stream* m_pMaskStream; |
572 int m_Status; | 568 int m_Status; |
(...skipping 14 matching lines...) Expand all Loading... |
587 const uint8_t* src_buf, | 583 const uint8_t* src_buf, |
588 int pixels, | 584 int pixels, |
589 int Bpp) const override; | 585 int Bpp) const override; |
590 | 586 |
591 const uint8_t* m_RampR; | 587 const uint8_t* m_RampR; |
592 const uint8_t* m_RampG; | 588 const uint8_t* m_RampG; |
593 const uint8_t* m_RampB; | 589 const uint8_t* m_RampB; |
594 }; | 590 }; |
595 | 591 |
596 #endif // CORE_FPDFAPI_RENDER_RENDER_INT_H_ | 592 #endif // CORE_FPDFAPI_RENDER_RENDER_INT_H_ |
OLD | NEW |