Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Side by Side Diff: core/src/fpdfapi/fpdf_render/render_int.h

Issue 1519693002: Merge to XFA: Remove CFX_AffineMatrix/CPDF_Matrix (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: XFA-specific changes Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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>
(...skipping 23 matching lines...) Expand all
34 34
35 int m_TopBlue[TYPE3_MAX_BLUES], m_BottomBlue[TYPE3_MAX_BLUES]; 35 int m_TopBlue[TYPE3_MAX_BLUES], m_BottomBlue[TYPE3_MAX_BLUES];
36 int m_TopBlueCount, m_BottomBlueCount; 36 int m_TopBlueCount, m_BottomBlueCount;
37 }; 37 };
38 class CPDF_Type3Cache { 38 class CPDF_Type3Cache {
39 public: 39 public:
40 explicit CPDF_Type3Cache(CPDF_Type3Font* pFont) : m_pFont(pFont) {} 40 explicit CPDF_Type3Cache(CPDF_Type3Font* pFont) : m_pFont(pFont) {}
41 ~CPDF_Type3Cache(); 41 ~CPDF_Type3Cache();
42 42
43 CFX_GlyphBitmap* LoadGlyph(FX_DWORD charcode, 43 CFX_GlyphBitmap* LoadGlyph(FX_DWORD charcode,
44 const CFX_AffineMatrix* pMatrix, 44 const CFX_Matrix* pMatrix,
45 FX_FLOAT retinaScaleX = 1.0f, 45 FX_FLOAT retinaScaleX = 1.0f,
46 FX_FLOAT retinaScaleY = 1.0f); 46 FX_FLOAT retinaScaleY = 1.0f);
47 47
48 protected: 48 protected:
49 CFX_GlyphBitmap* RenderGlyph(CPDF_Type3Glyphs* pSize, 49 CFX_GlyphBitmap* RenderGlyph(CPDF_Type3Glyphs* pSize,
50 FX_DWORD charcode, 50 FX_DWORD charcode,
51 const CFX_AffineMatrix* pMatrix, 51 const CFX_Matrix* pMatrix,
52 FX_FLOAT retinaScaleX = 1.0f, 52 FX_FLOAT retinaScaleX = 1.0f,
53 FX_FLOAT retinaScaleY = 1.0f); 53 FX_FLOAT retinaScaleY = 1.0f);
54 CPDF_Type3Font* const m_pFont; 54 CPDF_Type3Font* const m_pFont;
55 std::map<CFX_ByteString, CPDF_Type3Glyphs*> m_SizeMap; 55 std::map<CFX_ByteString, CPDF_Type3Glyphs*> m_SizeMap;
56 }; 56 };
57 57
58 class CPDF_TransferFunc { 58 class CPDF_TransferFunc {
59 public: 59 public:
60 explicit CPDF_TransferFunc(CPDF_Document* pDoc); 60 explicit CPDF_TransferFunc(CPDF_Document* pDoc);
61 61
(...skipping 24 matching lines...) Expand all
86 std::map<CPDF_Object*, CPDF_CountedObject<CPDF_TransferFunc>*>; 86 std::map<CPDF_Object*, CPDF_CountedObject<CPDF_TransferFunc>*>;
87 87
88 CPDF_Document* m_pPDFDoc; 88 CPDF_Document* m_pPDFDoc;
89 CFX_FontCache* m_pFontCache; 89 CFX_FontCache* m_pFontCache;
90 CPDF_Type3CacheMap m_Type3FaceMap; 90 CPDF_Type3CacheMap m_Type3FaceMap;
91 CPDF_TransferFuncMap m_TransferFuncMap; 91 CPDF_TransferFuncMap m_TransferFuncMap;
92 }; 92 };
93 struct _PDF_RenderItem { 93 struct _PDF_RenderItem {
94 public: 94 public:
95 CPDF_PageObjects* m_pObjectList; 95 CPDF_PageObjects* m_pObjectList;
96 CFX_AffineMatrix m_Matrix; 96 CFX_Matrix m_Matrix;
97 }; 97 };
98 98
99 typedef CFX_ArrayTemplate<_PDF_RenderItem> CPDF_RenderLayer; 99 typedef CFX_ArrayTemplate<_PDF_RenderItem> CPDF_RenderLayer;
100 100
101 class IPDF_ObjectRenderer { 101 class IPDF_ObjectRenderer {
102 public: 102 public:
103 static IPDF_ObjectRenderer* Create(int type); 103 static IPDF_ObjectRenderer* Create(int type);
104 virtual ~IPDF_ObjectRenderer() {} 104 virtual ~IPDF_ObjectRenderer() {}
105 virtual FX_BOOL Start(CPDF_RenderStatus* pRenderStatus, 105 virtual FX_BOOL Start(CPDF_RenderStatus* pRenderStatus,
106 const CPDF_PageObject* pObj, 106 const CPDF_PageObject* pObj,
107 const CFX_AffineMatrix* pObj2Device, 107 const CFX_Matrix* pObj2Device,
108 FX_BOOL bStdCS, 108 FX_BOOL bStdCS,
109 int blendType = FXDIB_BLEND_NORMAL) = 0; 109 int blendType = FXDIB_BLEND_NORMAL) = 0;
110 virtual FX_BOOL Continue(IFX_Pause* pPause) = 0; 110 virtual FX_BOOL Continue(IFX_Pause* pPause) = 0;
111 FX_BOOL m_Result; 111 FX_BOOL m_Result;
112 }; 112 };
113 113
114 class CPDF_RenderStatus { 114 class CPDF_RenderStatus {
115 public: 115 public:
116 CPDF_RenderStatus(); 116 CPDF_RenderStatus();
117 ~CPDF_RenderStatus(); 117 ~CPDF_RenderStatus();
118 FX_BOOL Initialize(class CPDF_RenderContext* pContext, 118 FX_BOOL Initialize(class CPDF_RenderContext* pContext,
119 CFX_RenderDevice* pDevice, 119 CFX_RenderDevice* pDevice,
120 const CFX_AffineMatrix* pDeviceMatrix, 120 const CFX_Matrix* pDeviceMatrix,
121 const CPDF_PageObject* pStopObj, 121 const CPDF_PageObject* pStopObj,
122 const CPDF_RenderStatus* pParentStatus, 122 const CPDF_RenderStatus* pParentStatus,
123 const CPDF_GraphicStates* pInitialStates, 123 const CPDF_GraphicStates* pInitialStates,
124 const CPDF_RenderOptions* pOptions, 124 const CPDF_RenderOptions* pOptions,
125 int transparency, 125 int transparency,
126 FX_BOOL bDropObjects, 126 FX_BOOL bDropObjects,
127 CPDF_Dictionary* pFormResource = NULL, 127 CPDF_Dictionary* pFormResource = NULL,
128 FX_BOOL bStdCS = FALSE, 128 FX_BOOL bStdCS = FALSE,
129 CPDF_Type3Char* pType3Char = NULL, 129 CPDF_Type3Char* pType3Char = NULL,
130 FX_ARGB fill_color = 0, 130 FX_ARGB fill_color = 0,
131 FX_DWORD GroupFamily = 0, 131 FX_DWORD GroupFamily = 0,
132 FX_BOOL bLoadMask = FALSE); 132 FX_BOOL bLoadMask = FALSE);
133 void RenderObjectList(const CPDF_PageObjects* pObjs, 133 void RenderObjectList(const CPDF_PageObjects* pObjs,
134 const CFX_AffineMatrix* pObj2Device); 134 const CFX_Matrix* pObj2Device);
135 void RenderSingleObject(const CPDF_PageObject* pObj, 135 void RenderSingleObject(const CPDF_PageObject* pObj,
136 const CFX_AffineMatrix* pObj2Device); 136 const CFX_Matrix* pObj2Device);
137 FX_BOOL ContinueSingleObject(const CPDF_PageObject* pObj, 137 FX_BOOL ContinueSingleObject(const CPDF_PageObject* pObj,
138 const CFX_AffineMatrix* pObj2Device, 138 const CFX_Matrix* pObj2Device,
139 IFX_Pause* pPause); 139 IFX_Pause* pPause);
140 CPDF_RenderContext* GetContext() { return m_pContext; } 140 CPDF_RenderContext* GetContext() { return m_pContext; }
141 141
142 CPDF_RenderOptions m_Options; 142 CPDF_RenderOptions m_Options;
143 CPDF_Dictionary* m_pFormResource; 143 CPDF_Dictionary* m_pFormResource;
144 CPDF_Dictionary* m_pPageResource; 144 CPDF_Dictionary* m_pPageResource;
145 CFX_ArrayTemplate<CPDF_Type3Font*> m_Type3FontCache; 145 CFX_ArrayTemplate<CPDF_Type3Font*> m_Type3FontCache;
146 146
147 protected: 147 protected:
148 friend class CPDF_ImageRenderer; 148 friend class CPDF_ImageRenderer;
149 friend class CPDF_RenderContext; 149 friend class CPDF_RenderContext;
150 void ProcessClipPath(CPDF_ClipPath ClipPath, 150 void ProcessClipPath(CPDF_ClipPath ClipPath, const CFX_Matrix* pObj2Device);
151 const CFX_AffineMatrix* pObj2Device); 151 void DrawClipPath(CPDF_ClipPath ClipPath, const CFX_Matrix* pObj2Device);
152 void DrawClipPath(CPDF_ClipPath ClipPath,
153 const CFX_AffineMatrix* pObj2Device);
154 FX_BOOL ProcessTransparency(const CPDF_PageObject* PageObj, 152 FX_BOOL ProcessTransparency(const CPDF_PageObject* PageObj,
155 const CFX_AffineMatrix* pObj2Device); 153 const CFX_Matrix* pObj2Device);
156 void ProcessObjectNoClip(const CPDF_PageObject* PageObj, 154 void ProcessObjectNoClip(const CPDF_PageObject* PageObj,
157 const CFX_AffineMatrix* pObj2Device); 155 const CFX_Matrix* pObj2Device);
158 void DrawObjWithBackground(const CPDF_PageObject* pObj, 156 void DrawObjWithBackground(const CPDF_PageObject* pObj,
159 const CFX_AffineMatrix* pObj2Device); 157 const CFX_Matrix* pObj2Device);
160 FX_BOOL DrawObjWithBlend(const CPDF_PageObject* pObj, 158 FX_BOOL DrawObjWithBlend(const CPDF_PageObject* pObj,
161 const CFX_AffineMatrix* pObj2Device); 159 const CFX_Matrix* pObj2Device);
162 FX_BOOL ProcessPath(CPDF_PathObject* pPathObj, 160 FX_BOOL ProcessPath(CPDF_PathObject* pPathObj, const CFX_Matrix* pObj2Device);
163 const CFX_AffineMatrix* pObj2Device);
164 void ProcessPathPattern(CPDF_PathObject* pPathObj, 161 void ProcessPathPattern(CPDF_PathObject* pPathObj,
165 const CFX_AffineMatrix* pObj2Device, 162 const CFX_Matrix* pObj2Device,
166 int& filltype, 163 int& filltype,
167 FX_BOOL& bStroke); 164 FX_BOOL& bStroke);
168 void DrawPathWithPattern(CPDF_PathObject* pPathObj, 165 void DrawPathWithPattern(CPDF_PathObject* pPathObj,
169 const CFX_AffineMatrix* pObj2Device, 166 const CFX_Matrix* pObj2Device,
170 CPDF_Color* pColor, 167 CPDF_Color* pColor,
171 FX_BOOL bStroke); 168 FX_BOOL bStroke);
172 void DrawTilingPattern(CPDF_TilingPattern* pPattern, 169 void DrawTilingPattern(CPDF_TilingPattern* pPattern,
173 CPDF_PageObject* pPageObj, 170 CPDF_PageObject* pPageObj,
174 const CFX_AffineMatrix* pObj2Device, 171 const CFX_Matrix* pObj2Device,
175 FX_BOOL bStroke); 172 FX_BOOL bStroke);
176 void DrawShadingPattern(CPDF_ShadingPattern* pPattern, 173 void DrawShadingPattern(CPDF_ShadingPattern* pPattern,
177 CPDF_PageObject* pPageObj, 174 CPDF_PageObject* pPageObj,
178 const CFX_AffineMatrix* pObj2Device, 175 const CFX_Matrix* pObj2Device,
179 FX_BOOL bStroke); 176 FX_BOOL bStroke);
180 FX_BOOL SelectClipPath(CPDF_PathObject* pPathObj, 177 FX_BOOL SelectClipPath(CPDF_PathObject* pPathObj,
181 const CFX_AffineMatrix* pObj2Device, 178 const CFX_Matrix* pObj2Device,
182 FX_BOOL bStroke); 179 FX_BOOL bStroke);
183 FX_BOOL ProcessImage(CPDF_ImageObject* pImageObj, 180 FX_BOOL ProcessImage(CPDF_ImageObject* pImageObj,
184 const CFX_AffineMatrix* pObj2Device); 181 const CFX_Matrix* pObj2Device);
185 FX_BOOL OutputBitmapAlpha(CPDF_ImageObject* pImageObj, 182 FX_BOOL OutputBitmapAlpha(CPDF_ImageObject* pImageObj,
186 const CFX_AffineMatrix* pImage2Device); 183 const CFX_Matrix* pImage2Device);
187 FX_BOOL OutputImage(CPDF_ImageObject* pImageObj, 184 FX_BOOL OutputImage(CPDF_ImageObject* pImageObj,
188 const CFX_AffineMatrix* pImage2Device); 185 const CFX_Matrix* pImage2Device);
189 FX_BOOL OutputDIBSource(const CFX_DIBSource* pOutputBitmap, 186 FX_BOOL OutputDIBSource(const CFX_DIBSource* pOutputBitmap,
190 FX_ARGB fill_argb, 187 FX_ARGB fill_argb,
191 int bitmap_alpha, 188 int bitmap_alpha,
192 const CFX_AffineMatrix* pImage2Device, 189 const CFX_Matrix* pImage2Device,
193 CPDF_ImageCache* pImageCache, 190 CPDF_ImageCache* pImageCache,
194 FX_DWORD flags); 191 FX_DWORD flags);
195 void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, 192 void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap,
196 int left, 193 int left,
197 int top, 194 int top,
198 FX_ARGB mask_argb, 195 FX_ARGB mask_argb,
199 int bitmap_alpha, 196 int bitmap_alpha,
200 int blend_mode, 197 int blend_mode,
201 int bIsolated); 198 int bIsolated);
202 FX_BOOL ProcessShading(CPDF_ShadingObject* pShadingObj, 199 FX_BOOL ProcessShading(CPDF_ShadingObject* pShadingObj,
203 const CFX_AffineMatrix* pObj2Device); 200 const CFX_Matrix* pObj2Device);
204 void DrawShading(CPDF_ShadingPattern* pPattern, 201 void DrawShading(CPDF_ShadingPattern* pPattern,
205 CFX_AffineMatrix* pMatrix, 202 CFX_Matrix* pMatrix,
206 FX_RECT& clip_rect, 203 FX_RECT& clip_rect,
207 int alpha, 204 int alpha,
208 FX_BOOL bAlphaMode); 205 FX_BOOL bAlphaMode);
209 FX_BOOL ProcessType3Text(const CPDF_TextObject* textobj, 206 FX_BOOL ProcessType3Text(const CPDF_TextObject* textobj,
210 const CFX_AffineMatrix* pObj2Device); 207 const CFX_Matrix* pObj2Device);
211 FX_BOOL ProcessText(const CPDF_TextObject* textobj, 208 FX_BOOL ProcessText(const CPDF_TextObject* textobj,
212 const CFX_AffineMatrix* pObj2Device, 209 const CFX_Matrix* pObj2Device,
213 CFX_PathData* pClippingPath); 210 CFX_PathData* pClippingPath);
214 void DrawTextPathWithPattern(const CPDF_TextObject* textobj, 211 void DrawTextPathWithPattern(const CPDF_TextObject* textobj,
215 const CFX_AffineMatrix* pObj2Device, 212 const CFX_Matrix* pObj2Device,
216 CPDF_Font* pFont, 213 CPDF_Font* pFont,
217 FX_FLOAT font_size, 214 FX_FLOAT font_size,
218 const CFX_AffineMatrix* pTextMatrix, 215 const CFX_Matrix* pTextMatrix,
219 FX_BOOL bFill, 216 FX_BOOL bFill,
220 FX_BOOL bStroke); 217 FX_BOOL bStroke);
221 FX_BOOL ProcessForm(CPDF_FormObject* pFormObj, 218 FX_BOOL ProcessForm(CPDF_FormObject* pFormObj, const CFX_Matrix* pObj2Device);
222 const CFX_AffineMatrix* pObj2Device);
223 CFX_DIBitmap* GetBackdrop(const CPDF_PageObject* pObj, 219 CFX_DIBitmap* GetBackdrop(const CPDF_PageObject* pObj,
224 const FX_RECT& rect, 220 const FX_RECT& rect,
225 int& left, 221 int& left,
226 int& top, 222 int& top,
227 FX_BOOL bBackAlphaRequired); 223 FX_BOOL bBackAlphaRequired);
228 CFX_DIBitmap* LoadSMask(CPDF_Dictionary* pSMaskDict, 224 CFX_DIBitmap* LoadSMask(CPDF_Dictionary* pSMaskDict,
229 FX_RECT* pClipRect, 225 FX_RECT* pClipRect,
230 const CFX_AffineMatrix* pMatrix); 226 const CFX_Matrix* pMatrix);
231 void Init(CPDF_RenderContext* pParent); 227 void Init(CPDF_RenderContext* pParent);
232 static class CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); 228 static class CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont);
233 static CPDF_GraphicStates* CloneObjStates(const CPDF_GraphicStates* pPathObj, 229 static CPDF_GraphicStates* CloneObjStates(const CPDF_GraphicStates* pPathObj,
234 FX_BOOL bStroke); 230 FX_BOOL bStroke);
235 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObject) const; 231 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObject) const;
236 FX_ARGB GetFillArgb(const CPDF_PageObject* pObj, 232 FX_ARGB GetFillArgb(const CPDF_PageObject* pObj,
237 FX_BOOL bType3 = FALSE) const; 233 FX_BOOL bType3 = FALSE) const;
238 FX_ARGB GetStrokeArgb(const CPDF_PageObject* pObj) const; 234 FX_ARGB GetStrokeArgb(const CPDF_PageObject* pObj) const;
239 CPDF_RenderContext* m_pContext; 235 CPDF_RenderContext* m_pContext;
240 FX_BOOL m_bStopped; 236 FX_BOOL m_bStopped;
241 void DitherObjectArea(const CPDF_PageObject* pObj, 237 void DitherObjectArea(const CPDF_PageObject* pObj,
242 const CFX_AffineMatrix* pObj2Device); 238 const CFX_Matrix* pObj2Device);
243 FX_BOOL GetObjectClippedRect(const CPDF_PageObject* pObj, 239 FX_BOOL GetObjectClippedRect(const CPDF_PageObject* pObj,
244 const CFX_AffineMatrix* pObj2Device, 240 const CFX_Matrix* pObj2Device,
245 FX_BOOL bLogical, 241 FX_BOOL bLogical,
246 FX_RECT& rect) const; 242 FX_RECT& rect) const;
247 void GetScaledMatrix(CFX_Matrix& matrix) const; 243 void GetScaledMatrix(CFX_Matrix& matrix) const;
248 244
249 protected: 245 protected:
250 static const int kRenderMaxRecursionDepth = 64; 246 static const int kRenderMaxRecursionDepth = 64;
251 static int s_CurrentRecursionDepth; 247 static int s_CurrentRecursionDepth;
252 248
253 CFX_RenderDevice* m_pDevice; 249 CFX_RenderDevice* m_pDevice;
254 CFX_AffineMatrix m_DeviceMatrix; 250 CFX_Matrix m_DeviceMatrix;
255 CPDF_ClipPath m_LastClipPath; 251 CPDF_ClipPath m_LastClipPath;
256 const CPDF_PageObject* m_pCurObj; 252 const CPDF_PageObject* m_pCurObj;
257 const CPDF_PageObject* m_pStopObj; 253 const CPDF_PageObject* m_pStopObj;
258 CPDF_GraphicStates m_InitialStates; 254 CPDF_GraphicStates m_InitialStates;
259 int m_HalftoneLimit; 255 int m_HalftoneLimit;
260 nonstd::unique_ptr<IPDF_ObjectRenderer> m_pObjectRenderer; 256 nonstd::unique_ptr<IPDF_ObjectRenderer> m_pObjectRenderer;
261 FX_BOOL m_bPrint; 257 FX_BOOL m_bPrint;
262 int m_Transparency; 258 int m_Transparency;
263 int m_DitherBits; 259 int m_DitherBits;
264 FX_BOOL m_bDropObjects; 260 FX_BOOL m_bDropObjects;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 class CFX_ImageTransformer; 329 class CFX_ImageTransformer;
334 330
335 class CPDF_ImageRenderer : public IPDF_ObjectRenderer { 331 class CPDF_ImageRenderer : public IPDF_ObjectRenderer {
336 public: 332 public:
337 CPDF_ImageRenderer(); 333 CPDF_ImageRenderer();
338 ~CPDF_ImageRenderer() override; 334 ~CPDF_ImageRenderer() override;
339 335
340 // IPDF_ObjectRenderer 336 // IPDF_ObjectRenderer
341 FX_BOOL Start(CPDF_RenderStatus* pStatus, 337 FX_BOOL Start(CPDF_RenderStatus* pStatus,
342 const CPDF_PageObject* pObj, 338 const CPDF_PageObject* pObj,
343 const CFX_AffineMatrix* pObj2Device, 339 const CFX_Matrix* pObj2Device,
344 FX_BOOL bStdCS, 340 FX_BOOL bStdCS,
345 int blendType = FXDIB_BLEND_NORMAL) override; 341 int blendType = FXDIB_BLEND_NORMAL) override;
346 FX_BOOL Continue(IFX_Pause* pPause) override; 342 FX_BOOL Continue(IFX_Pause* pPause) override;
347 343
348 FX_BOOL Start(CPDF_RenderStatus* pStatus, 344 FX_BOOL Start(CPDF_RenderStatus* pStatus,
349 const CFX_DIBSource* pDIBSource, 345 const CFX_DIBSource* pDIBSource,
350 FX_ARGB bitmap_argb, 346 FX_ARGB bitmap_argb,
351 int bitmap_alpha, 347 int bitmap_alpha,
352 const CFX_AffineMatrix* pImage2Device, 348 const CFX_Matrix* pImage2Device,
353 FX_DWORD flags, 349 FX_DWORD flags,
354 FX_BOOL bStdCS, 350 FX_BOOL bStdCS,
355 int blendType = FXDIB_BLEND_NORMAL); 351 int blendType = FXDIB_BLEND_NORMAL);
356 352
357 protected: 353 protected:
358 CPDF_RenderStatus* m_pRenderStatus; 354 CPDF_RenderStatus* m_pRenderStatus;
359 CPDF_ImageObject* m_pImageObject; 355 CPDF_ImageObject* m_pImageObject;
360 int m_Status; 356 int m_Status;
361 const CFX_AffineMatrix* m_pObj2Device; 357 const CFX_Matrix* m_pObj2Device;
362 CFX_AffineMatrix m_ImageMatrix; 358 CFX_Matrix m_ImageMatrix;
363 CPDF_ImageLoader m_Loader; 359 CPDF_ImageLoader m_Loader;
364 const CFX_DIBSource* m_pDIBSource; 360 const CFX_DIBSource* m_pDIBSource;
365 CFX_DIBitmap* m_pClone; 361 CFX_DIBitmap* m_pClone;
366 int m_BitmapAlpha; 362 int m_BitmapAlpha;
367 FX_BOOL m_bPatternColor; 363 FX_BOOL m_bPatternColor;
368 CPDF_Pattern* m_pPattern; 364 CPDF_Pattern* m_pPattern;
369 FX_ARGB m_FillArgb; 365 FX_ARGB m_FillArgb;
370 FX_DWORD m_Flags; 366 FX_DWORD m_Flags;
371 CPDF_QuickStretcher* m_pQuickStretcher; 367 CPDF_QuickStretcher* m_pQuickStretcher;
372 CFX_ImageTransformer* m_pTransformer; 368 CFX_ImageTransformer* m_pTransformer;
(...skipping 16 matching lines...) Expand all
389 385
390 FX_BOOL Initialize(CPDF_RenderContext* pContext, 386 FX_BOOL Initialize(CPDF_RenderContext* pContext,
391 CFX_RenderDevice* pDevice, 387 CFX_RenderDevice* pDevice,
392 FX_RECT* pRect, 388 FX_RECT* pRect,
393 const CPDF_PageObject* pObj, 389 const CPDF_PageObject* pObj,
394 const CPDF_RenderOptions* pOptions = NULL, 390 const CPDF_RenderOptions* pOptions = NULL,
395 int max_dpi = 0); 391 int max_dpi = 0);
396 CFX_RenderDevice* GetDevice() { 392 CFX_RenderDevice* GetDevice() {
397 return m_pBitmapDevice ? m_pBitmapDevice.get() : m_pDevice; 393 return m_pBitmapDevice ? m_pBitmapDevice.get() : m_pDevice;
398 } 394 }
399 CFX_AffineMatrix* GetMatrix() { return &m_Matrix; } 395 CFX_Matrix* GetMatrix() { return &m_Matrix; }
400 void OutputToDevice(); 396 void OutputToDevice();
401 397
402 private: 398 private:
403 CFX_RenderDevice* m_pDevice; 399 CFX_RenderDevice* m_pDevice;
404 CPDF_RenderContext* m_pContext; 400 CPDF_RenderContext* m_pContext;
405 FX_RECT m_Rect; 401 FX_RECT m_Rect;
406 const CPDF_PageObject* m_pObject; 402 const CPDF_PageObject* m_pObject;
407 nonstd::unique_ptr<CFX_FxgeDevice> m_pBitmapDevice; 403 nonstd::unique_ptr<CFX_FxgeDevice> m_pBitmapDevice;
408 CFX_AffineMatrix m_Matrix; 404 CFX_Matrix m_Matrix;
409 }; 405 };
410 406
411 class ICodec_ScanlineDecoder; 407 class ICodec_ScanlineDecoder;
412 class CPDF_QuickStretcher { 408 class CPDF_QuickStretcher {
413 public: 409 public:
414 CPDF_QuickStretcher(); 410 CPDF_QuickStretcher();
415 ~CPDF_QuickStretcher(); 411 ~CPDF_QuickStretcher();
416 FX_BOOL Start(CPDF_ImageObject* pImageObj, 412 FX_BOOL Start(CPDF_ImageObject* pImageObj,
417 CFX_AffineMatrix* pImage2Device, 413 CFX_Matrix* pImage2Device,
418 const FX_RECT* pClipBox); 414 const FX_RECT* pClipBox);
419 FX_BOOL Continue(IFX_Pause* pPause); 415 FX_BOOL Continue(IFX_Pause* pPause);
420 CFX_DIBitmap* m_pBitmap; 416 CFX_DIBitmap* m_pBitmap;
421 int m_ResultLeft, m_ResultTop, m_ClipLeft, m_ClipTop; 417 int m_ResultLeft, m_ResultTop, m_ClipLeft, m_ClipTop;
422 int m_DestWidth, m_DestHeight, m_ResultWidth, m_ResultHeight; 418 int m_DestWidth, m_DestHeight, m_ResultWidth, m_ResultHeight;
423 int m_Bpp, m_SrcWidth, m_SrcHeight; 419 int m_Bpp, m_SrcWidth, m_SrcHeight;
424 FX_BOOL m_bFlipX, m_bFlipY; 420 FX_BOOL m_bFlipX, m_bFlipY;
425 CPDF_ColorSpace* m_pCS; 421 CPDF_ColorSpace* m_pCS;
426 ICodec_ScanlineDecoder* m_pDecoder; 422 ICodec_ScanlineDecoder* m_pDecoder;
427 CPDF_StreamAcc m_StreamAcc; 423 CPDF_StreamAcc m_StreamAcc;
428 int m_LineIndex; 424 int m_LineIndex;
429 }; 425 };
430 426
431 class CPDF_DeviceBuffer { 427 class CPDF_DeviceBuffer {
432 public: 428 public:
433 CPDF_DeviceBuffer(); 429 CPDF_DeviceBuffer();
434 ~CPDF_DeviceBuffer(); 430 ~CPDF_DeviceBuffer();
435 FX_BOOL Initialize(CPDF_RenderContext* pContext, 431 FX_BOOL Initialize(CPDF_RenderContext* pContext,
436 CFX_RenderDevice* pDevice, 432 CFX_RenderDevice* pDevice,
437 FX_RECT* pRect, 433 FX_RECT* pRect,
438 const CPDF_PageObject* pObj, 434 const CPDF_PageObject* pObj,
439 int max_dpi = 0); 435 int max_dpi = 0);
440 void OutputToDevice(); 436 void OutputToDevice();
441 CFX_DIBitmap* GetBitmap() const { return m_pBitmap.get(); } 437 CFX_DIBitmap* GetBitmap() const { return m_pBitmap.get(); }
442 const CFX_AffineMatrix* GetMatrix() const { return &m_Matrix; } 438 const CFX_Matrix* GetMatrix() const { return &m_Matrix; }
443 439
444 private: 440 private:
445 CFX_RenderDevice* m_pDevice; 441 CFX_RenderDevice* m_pDevice;
446 CPDF_RenderContext* m_pContext; 442 CPDF_RenderContext* m_pContext;
447 FX_RECT m_Rect; 443 FX_RECT m_Rect;
448 const CPDF_PageObject* m_pObject; 444 const CPDF_PageObject* m_pObject;
449 nonstd::unique_ptr<CFX_DIBitmap> m_pBitmap; 445 nonstd::unique_ptr<CFX_DIBitmap> m_pBitmap;
450 CFX_AffineMatrix m_Matrix; 446 CFX_Matrix m_Matrix;
451 }; 447 };
452 448
453 class CPDF_ImageCache { 449 class CPDF_ImageCache {
454 public: 450 public:
455 CPDF_ImageCache(CPDF_Document* pDoc, CPDF_Stream* pStream); 451 CPDF_ImageCache(CPDF_Document* pDoc, CPDF_Stream* pStream);
456 ~CPDF_ImageCache(); 452 ~CPDF_ImageCache();
457 void ClearImageData(); 453 void ClearImageData();
458 void Reset(const CFX_DIBitmap* pBitmap); 454 void Reset(const CFX_DIBitmap* pBitmap);
459 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap, 455 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap,
460 CFX_DIBSource*& pMask, 456 CFX_DIBSource*& pMask,
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 const uint8_t* m_RampB; 641 const uint8_t* m_RampB;
646 }; 642 };
647 643
648 struct _CPDF_UniqueKeyGen { 644 struct _CPDF_UniqueKeyGen {
649 void Generate(int count, ...); 645 void Generate(int count, ...);
650 FX_CHAR m_Key[128]; 646 FX_CHAR m_Key[128];
651 int m_KeyLen; 647 int m_KeyLen;
652 }; 648 };
653 649
654 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ 650 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698