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

Side by Side Diff: core/src/fpdfapi/fpdf_page/pageint.h

Issue 1258093002: FX Bool considered harmful, part 3 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 4 months 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_PAGE_PAGEINT_H_ 7 #ifndef CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_
8 #define CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_ 8 #define CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_
9 9
10 #include <map> 10 #include <map>
11 11
12 #include "../../../../third_party/base/nonstd_unique_ptr.h" 12 #include "../../../../third_party/base/nonstd_unique_ptr.h"
13 #include "../../../include/fpdfapi/fpdf_pageobj.h" 13 #include "../../../include/fpdfapi/fpdf_pageobj.h"
14 14
15 #define PARSE_STEP_LIMIT 100 15 #define PARSE_STEP_LIMIT 100
16 16
17 class CPDF_StreamParser 17 class CPDF_StreamParser
18 { 18 {
19 public: 19 public:
20 20
21 CPDF_StreamParser(const uint8_t* pData, FX_DWORD dwSize); 21 CPDF_StreamParser(const uint8_t* pData, FX_DWORD dwSize);
22 ~CPDF_StreamParser(); 22 ~CPDF_StreamParser();
23 23
24 CPDF_Stream*» » ReadInlineStream(CPDF_Document* pDoc, CPDF_Dicti onary* pDict, CPDF_Object* pCSObj, FX_BOOL bDecode); 24 CPDF_Stream*» » ReadInlineStream(CPDF_Document* pDoc, CPDF_Dicti onary* pDict, CPDF_Object* pCSObj, bool bDecode);
25 typedef enum { EndOfData, Number, Keyword, Name, Others } SyntaxType; 25 typedef enum { EndOfData, Number, Keyword, Name, Others } SyntaxType;
26 26
27 SyntaxType ParseNextElement(); 27 SyntaxType ParseNextElement();
28 uint8_t* GetWordBuf() 28 uint8_t* GetWordBuf()
29 { 29 {
30 return m_WordBuffer; 30 return m_WordBuffer;
31 } 31 }
32 FX_DWORD GetWordSize() 32 FX_DWORD GetWordSize()
33 { 33 {
34 return m_WordSize; 34 return m_WordSize;
35 } 35 }
36 CPDF_Object* GetObject() 36 CPDF_Object* GetObject()
37 { 37 {
38 CPDF_Object* pObj = m_pLastObj; 38 CPDF_Object* pObj = m_pLastObj;
39 m_pLastObj = NULL; 39 m_pLastObj = NULL;
40 return pObj; 40 return pObj;
41 } 41 }
42 FX_DWORD GetPos() 42 FX_DWORD GetPos()
43 { 43 {
44 return m_Pos; 44 return m_Pos;
45 } 45 }
46 void SetPos(FX_DWORD pos) 46 void SetPos(FX_DWORD pos)
47 { 47 {
48 m_Pos = pos; 48 m_Pos = pos;
49 } 49 }
50 50
51 CPDF_Object*» » ReadNextObject(FX_BOOL bAllowNestedArray = FALSE , FX_BOOL bInArray = FALSE); 51 CPDF_Object*» » ReadNextObject(bool bAllowNestedArray = false, b ool bInArray = false);
52 void SkipPathObject(); 52 void SkipPathObject();
53 protected: 53 protected:
54 void» » » » GetNextWord(FX_BOOL& bIsNumber); 54 void» » » » GetNextWord(bool& bIsNumber);
55 CFX_ByteString ReadString(); 55 CFX_ByteString ReadString();
56 CFX_ByteString ReadHexString(); 56 CFX_ByteString ReadHexString();
57 const uint8_t* m_pBuf; 57 const uint8_t* m_pBuf;
58 FX_DWORD m_Size; 58 FX_DWORD m_Size;
59 FX_DWORD m_Pos; 59 FX_DWORD m_Pos;
60 uint8_t m_WordBuffer[256]; 60 uint8_t m_WordBuffer[256];
61 FX_DWORD m_WordSize; 61 FX_DWORD m_WordSize;
62 CPDF_Object* m_pLastObj; 62 CPDF_Object* m_pLastObj;
63 }; 63 };
64 typedef enum { 64 typedef enum {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 PDFOP_CurveTo_23, PDFOP_SetLineWidth, 98 PDFOP_CurveTo_23, PDFOP_SetLineWidth,
99 PDFOP_Clip, PDFOP_EOClip, 99 PDFOP_Clip, PDFOP_EOClip,
100 PDFOP_CurveTo_13, PDFOP_NextLineShowText, 100 PDFOP_CurveTo_13, PDFOP_NextLineShowText,
101 PDFOP_NextLineShowText_Space, PDFOP_Invalid 101 PDFOP_NextLineShowText_Space, PDFOP_Invalid
102 } PDFOP; 102 } PDFOP;
103 #define PARAM_BUF_SIZE 16 103 #define PARAM_BUF_SIZE 16
104 typedef struct { 104 typedef struct {
105 int m_Type; 105 int m_Type;
106 union { 106 union {
107 struct { 107 struct {
108 FX_BOOL» » m_bInteger; 108 bool» » m_bInteger;
109 union { 109 union {
110 int m_Integer; 110 int m_Integer;
111 FX_FLOAT m_Float; 111 FX_FLOAT m_Float;
112 }; 112 };
113 } m_Number; 113 } m_Number;
114 CPDF_Object* m_pObject; 114 CPDF_Object* m_pObject;
115 struct { 115 struct {
116 int m_Len; 116 int m_Len;
117 char m_Buffer[32]; 117 char m_Buffer[32];
118 } m_Name; 118 } m_Name;
(...skipping 11 matching lines...) Expand all
130 CPDF_Dictionary* pParentResources, 130 CPDF_Dictionary* pParentResources,
131 CFX_AffineMatrix* pmtContentToUser, 131 CFX_AffineMatrix* pmtContentToUser,
132 CPDF_PageObjects* pObjList, 132 CPDF_PageObjects* pObjList,
133 CPDF_Dictionary* pResources, 133 CPDF_Dictionary* pResources,
134 CFX_FloatRect* pBBox, 134 CFX_FloatRect* pBBox,
135 CPDF_ParseOptions* pOptions, 135 CPDF_ParseOptions* pOptions,
136 CPDF_AllStates* pAllStates, 136 CPDF_AllStates* pAllStates,
137 int level); 137 int level);
138 ~CPDF_StreamContentParser(); 138 ~CPDF_StreamContentParser();
139 139
140 FX_BOOL ShouldAbort() const { return m_bAbort; } 140 bool ShouldAbort() const { return m_bAbort; }
141 CPDF_PageObjects* GetObjectList() const { return m_pObjectList; } 141 CPDF_PageObjects* GetObjectList() const { return m_pObjectList; }
142 CPDF_AllStates* GetCurStates() const { return m_pCurStates.get(); } 142 CPDF_AllStates* GetCurStates() const { return m_pCurStates.get(); }
143 FX_BOOL IsColored() const { return m_bColored; } 143 bool IsColored() const { return m_bColored; }
144 const FX_FLOAT* GetType3Data() const { return m_Type3Data; } 144 const FX_FLOAT* GetType3Data() const { return m_Type3Data; }
145 145
146 void AddNumberParam(const FX_CHAR* str, int l en); 146 void AddNumberParam(const FX_CHAR* str, int l en);
147 void AddObjectParam(CPDF_Object* pObj); 147 void AddObjectParam(CPDF_Object* pObj);
148 void AddNameParam(const FX_CHAR* name, int si ze); 148 void AddNameParam(const FX_CHAR* name, int si ze);
149 int GetNextParamPos(); 149 int GetNextParamPos();
150 void ClearAllParams(); 150 void ClearAllParams();
151 CPDF_Object* GetObject(FX_DWORD index); 151 CPDF_Object* GetObject(FX_DWORD index);
152 CFX_ByteString GetString(FX_DWORD index); 152 CFX_ByteString GetString(FX_DWORD index);
153 FX_FLOAT GetNumber(FX_DWORD index); 153 FX_FLOAT GetNumber(FX_DWORD index);
154 FX_FLOAT GetNumber16(FX_DWORD index); 154 FX_FLOAT GetNumber16(FX_DWORD index);
155 int GetInteger(FX_DWORD index) 155 int GetInteger(FX_DWORD index)
156 { 156 {
157 return (int32_t)(GetNumber(index)); 157 return (int32_t)(GetNumber(index));
158 } 158 }
159 FX_BOOL» » » » OnOperator(const FX_CHAR* op); 159 bool» » » » OnOperator(const FX_CHAR* op);
160 void BigCaseCaller(int index); 160 void BigCaseCaller(int index);
161 FX_DWORD GetParsePos() 161 FX_DWORD GetParsePos()
162 { 162 {
163 return m_pSyntax->GetPos(); 163 return m_pSyntax->GetPos();
164 } 164 }
165 void AddTextObject(CFX_ByteString* pText, FX_ FLOAT fInitKerning, FX_FLOAT* pKerning, int count); 165 void AddTextObject(CFX_ByteString* pText, FX_ FLOAT fInitKerning, FX_FLOAT* pKerning, int count);
166 166
167 void ConvertUserSpace(FX_FLOAT& x, FX_FLOAT& y); 167 void ConvertUserSpace(FX_FLOAT& x, FX_FLOAT& y);
168 void ConvertTextSpace(FX_FLOAT& x, FX_FLOAT& y); 168 void ConvertTextSpace(FX_FLOAT& x, FX_FLOAT& y);
169 void OnChangeTextMatrix(); 169 void OnChangeTextMatrix();
170 FX_DWORD Parse(const uint8_t* pData, FX_DWORD dwSize, FX_ DWORD max_cost); 170 FX_DWORD Parse(const uint8_t* pData, FX_DWORD dwSize, FX_ DWORD max_cost);
171 void ParsePathObject(); 171 void ParsePathObject();
172 void AddPathPoint(FX_FLOAT x, FX_FLOAT y, int flag); 172 void AddPathPoint(FX_FLOAT x, FX_FLOAT y, int flag);
173 void AddPathRect(FX_FLOAT x, FX_FLOAT y, FX_F LOAT w, FX_FLOAT h); 173 void AddPathRect(FX_FLOAT x, FX_FLOAT y, FX_F LOAT w, FX_FLOAT h);
174 void» » » » AddPathObject(int FillType, FX_BOOL bStr oke); 174 void» » » » AddPathObject(int FillType, bool bStroke );
175 CPDF_ImageObject*» AddImage(CPDF_Stream* pStream, CPDF_Image* pImage, FX_BO OL bInline); 175 CPDF_ImageObject*» AddImage(CPDF_Stream* pStream, CPDF_Image* pImage, bool bInline);
176 void AddDuplicateImage(); 176 void AddDuplicateImage();
177 void AddForm(CPDF_Stream*); 177 void AddForm(CPDF_Stream*);
178 void» » » » SetGraphicStates(CPDF_PageObject* pObj, FX_BOOL bColor, FX_BOOL bText, FX_BOOL bGraph); 178 void» » » » SetGraphicStates(CPDF_PageObject* pObj, bool bColor, bool bText, bool bGraph);
179 void SaveStates(CPDF_AllStates*); 179 void SaveStates(CPDF_AllStates*);
180 void RestoreStates(CPDF_AllStates*); 180 void RestoreStates(CPDF_AllStates*);
181 CPDF_Font* FindFont(const CFX_ByteString& name); 181 CPDF_Font* FindFont(const CFX_ByteString& name);
182 CPDF_ColorSpace* FindColorSpace(const CFX_ByteString& name); 182 CPDF_ColorSpace* FindColorSpace(const CFX_ByteString& name);
183 CPDF_Pattern*» » FindPattern(const CFX_ByteString& name, FX_BOOL bShading); 183 CPDF_Pattern*» » FindPattern(const CFX_ByteString& name, bool bSh ading);
184 CPDF_Object* FindResourceObj(const CFX_ByteStringC& type, con st CFX_ByteString& name); 184 CPDF_Object* FindResourceObj(const CFX_ByteStringC& type, con st CFX_ByteString& name);
185 185
186 protected: 186 protected:
187 struct OpCode { 187 struct OpCode {
188 FX_DWORD m_OpId; 188 FX_DWORD m_OpId;
189 void (CPDF_StreamContentParser::*m_OpHandler)(); 189 void (CPDF_StreamContentParser::*m_OpHandler)();
190 }; 190 };
191 static const OpCode g_OpCodes[]; 191 static const OpCode g_OpCodes[];
192 192
193 void Handle_CloseFillStrokePath(); 193 void Handle_CloseFillStrokePath();
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 CPDF_Dictionary* m_pParentResources; 270 CPDF_Dictionary* m_pParentResources;
271 CPDF_Dictionary* m_pResources; 271 CPDF_Dictionary* m_pResources;
272 CPDF_PageObjects* m_pObjectList; 272 CPDF_PageObjects* m_pObjectList;
273 int m_Level; 273 int m_Level;
274 CFX_AffineMatrix m_mtContentToUser; 274 CFX_AffineMatrix m_mtContentToUser;
275 CFX_FloatRect m_BBox; 275 CFX_FloatRect m_BBox;
276 CPDF_ParseOptions m_Options; 276 CPDF_ParseOptions m_Options;
277 _ContentParam m_ParamBuf1[PARAM_BUF_SIZE]; 277 _ContentParam m_ParamBuf1[PARAM_BUF_SIZE];
278 FX_DWORD m_ParamStartPos; 278 FX_DWORD m_ParamStartPos;
279 FX_DWORD m_ParamCount; 279 FX_DWORD m_ParamCount;
280 FX_BOOL m_bAbort; 280 bool m_bAbort;
281 CPDF_StreamParser* m_pSyntax; 281 CPDF_StreamParser* m_pSyntax;
282 nonstd::unique_ptr<CPDF_AllStates> m_pCurStates; 282 nonstd::unique_ptr<CPDF_AllStates> m_pCurStates;
283 CPDF_ContentMark m_CurContentMark; 283 CPDF_ContentMark m_CurContentMark;
284 CFX_PtrArray m_ClipTextList; 284 CFX_PtrArray m_ClipTextList;
285 CPDF_TextObject* m_pLastTextObject; 285 CPDF_TextObject* m_pLastTextObject;
286 FX_FLOAT m_DefFontSize; 286 FX_FLOAT m_DefFontSize;
287 int m_CompatCount; 287 int m_CompatCount;
288 FX_PATHPOINT* m_pPathPoints; 288 FX_PATHPOINT* m_pPathPoints;
289 int m_PathPointCount; 289 int m_PathPointCount;
290 int m_PathAllocSize; 290 int m_PathAllocSize;
291 FX_FLOAT m_PathStartX; 291 FX_FLOAT m_PathStartX;
292 FX_FLOAT m_PathStartY; 292 FX_FLOAT m_PathStartY;
293 FX_FLOAT m_PathCurrentX; 293 FX_FLOAT m_PathCurrentX;
294 FX_FLOAT m_PathCurrentY; 294 FX_FLOAT m_PathCurrentY;
295 int m_PathClipType; 295 int m_PathClipType;
296 CFX_ByteString m_LastImageName; 296 CFX_ByteString m_LastImageName;
297 CPDF_Image* m_pLastImage; 297 CPDF_Image* m_pLastImage;
298 CFX_BinaryBuf m_LastImageDict; 298 CFX_BinaryBuf m_LastImageDict;
299 CFX_BinaryBuf m_LastImageData; 299 CFX_BinaryBuf m_LastImageData;
300 CPDF_Dictionary* m_pLastImageDict; 300 CPDF_Dictionary* m_pLastImageDict;
301 CPDF_Dictionary* m_pLastCloneImageDict; 301 CPDF_Dictionary* m_pLastCloneImageDict;
302 FX_BOOL m_bReleaseLastDict; 302 bool m_bReleaseLastDict;
303 FX_BOOL m_bSameLastDict; 303 bool m_bSameLastDict;
304 FX_BOOL m_bColored; 304 bool m_bColored;
305 FX_FLOAT m_Type3Data[6]; 305 FX_FLOAT m_Type3Data[6];
306 FX_BOOL m_bResourceMissing; 306 bool m_bResourceMissing;
307 CFX_PtrArray m_StateStack; 307 CFX_PtrArray m_StateStack;
308 }; 308 };
309 class CPDF_ContentParser 309 class CPDF_ContentParser
310 { 310 {
311 public: 311 public:
312 enum ParseStatus { 312 enum ParseStatus {
313 Ready, 313 Ready,
314 ToBeContinued, 314 ToBeContinued,
315 Done 315 Done
316 }; 316 };
317 317
318 CPDF_ContentParser(); 318 CPDF_ContentParser();
319 ~CPDF_ContentParser(); 319 ~CPDF_ContentParser();
320 320
321 ParseStatus GetStatus() 321 ParseStatus GetStatus()
322 { 322 {
323 return m_Status; 323 return m_Status;
324 } 324 }
325 void Start(CPDF_Page* pPage, CPDF_ParseOption s* pOptions); 325 void Start(CPDF_Page* pPage, CPDF_ParseOption s* pOptions);
326 void Start(CPDF_Form* pForm, CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pParentMatrix, 326 void Start(CPDF_Form* pForm, CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pParentMatrix,
327 CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOp tions, int level); 327 CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOp tions, int level);
328 void Continue(IFX_Pause* pPause); 328 void Continue(IFX_Pause* pPause);
329 329
330 protected: 330 protected:
331 void Clear(); 331 void Clear();
332 ParseStatus m_Status; 332 ParseStatus m_Status;
333 CPDF_PageObjects* m_pObjects; 333 CPDF_PageObjects* m_pObjects;
334 FX_BOOL» » » » m_bForm; 334 bool» » » » m_bForm;
335 CPDF_ParseOptions m_Options; 335 CPDF_ParseOptions m_Options;
336 CPDF_Type3Char* m_pType3Char; 336 CPDF_Type3Char* m_pType3Char;
337 int m_InternalStage; 337 int m_InternalStage;
338 CPDF_StreamAcc* m_pSingleStream; 338 CPDF_StreamAcc* m_pSingleStream;
339 CPDF_StreamAcc** m_pStreamArray; 339 CPDF_StreamAcc** m_pStreamArray;
340 FX_DWORD m_nStreams; 340 FX_DWORD m_nStreams;
341 uint8_t* m_pData; 341 uint8_t* m_pData;
342 FX_DWORD m_Size; 342 FX_DWORD m_Size;
343 class CPDF_StreamContentParser* m_pParser; 343 class CPDF_StreamContentParser* m_pParser;
344 FX_DWORD m_CurrentOffset; 344 FX_DWORD m_CurrentOffset;
(...skipping 11 matching lines...) Expand all
356 FX_FLOAT m_TextX, m_TextY, m_TextLineX, m_TextLin eY; 356 FX_FLOAT m_TextX, m_TextY, m_TextLineX, m_TextLin eY;
357 FX_FLOAT m_TextLeading, m_TextRise, m_TextHorzSca le; 357 FX_FLOAT m_TextLeading, m_TextRise, m_TextHorzSca le;
358 }; 358 };
359 359
360 class CPDF_DocPageData 360 class CPDF_DocPageData
361 { 361 {
362 public: 362 public:
363 explicit CPDF_DocPageData(CPDF_Document *pPDFDoc); 363 explicit CPDF_DocPageData(CPDF_Document *pPDFDoc);
364 ~CPDF_DocPageData(); 364 ~CPDF_DocPageData();
365 365
366 void Clear(FX_BOOL bRelease = FALSE); 366 void Clear(bool bRelease = false);
367 CPDF_Font* GetFont(CPDF_Dictionary* pFontDict, FX_BOOL find Only); 367 CPDF_Font* GetFont(CPDF_Dictionary* pFontDict, bool findOnl y);
368 CPDF_Font* GetStandardFont(const CFX_ByteStringC& fontName, CPDF_FontEncoding* pEncoding); 368 CPDF_Font* GetStandardFont(const CFX_ByteStringC& fontName, CPDF_FontEncoding* pEncoding);
369 void ReleaseFont(CPDF_Dictionary* pFontDict); 369 void ReleaseFont(CPDF_Dictionary* pFontDict);
370 CPDF_ColorSpace* GetColorSpace(CPDF_Object* pCSObj, CPDF_Dictiona ry* pResources); 370 CPDF_ColorSpace* GetColorSpace(CPDF_Object* pCSObj, CPDF_Dictiona ry* pResources);
371 CPDF_ColorSpace* GetCopiedColorSpace(CPDF_Object* pCSObj); 371 CPDF_ColorSpace* GetCopiedColorSpace(CPDF_Object* pCSObj);
372 void ReleaseColorSpace(CPDF_Object* pColorSpace); 372 void ReleaseColorSpace(CPDF_Object* pColorSpace);
373 CPDF_Pattern* GetPattern(CPDF_Object* pPatternObj, FX_BOOL bSh ading, const CFX_AffineMatrix* matrix); 373 CPDF_Pattern* GetPattern(CPDF_Object* pPatternObj, bool bShadi ng, const CFX_AffineMatrix* matrix);
374 void ReleasePattern(CPDF_Object* pPatternObj); 374 void ReleasePattern(CPDF_Object* pPatternObj);
375 CPDF_Image* GetImage(CPDF_Object* pImageStream); 375 CPDF_Image* GetImage(CPDF_Object* pImageStream);
376 void ReleaseImage(CPDF_Object* pImageStream); 376 void ReleaseImage(CPDF_Object* pImageStream);
377 CPDF_IccProfile* GetIccProfile(CPDF_Stream* pIccProfileStream); 377 CPDF_IccProfile* GetIccProfile(CPDF_Stream* pIccProfileStream);
378 void ReleaseIccProfile(CPDF_IccProfile* pIccProfile); 378 void ReleaseIccProfile(CPDF_IccProfile* pIccProfile);
379 CPDF_StreamAcc* GetFontFileStreamAcc(CPDF_Stream* pFontStream); 379 CPDF_StreamAcc* GetFontFileStreamAcc(CPDF_Stream* pFontStream);
380 void ReleaseFontFileStreamAcc(CPDF_Stream* pFontStrea m, FX_BOOL bForce = FALSE); 380 void ReleaseFontFileStreamAcc(CPDF_Stream* pFontStrea m, bool bForce = false);
381 FX_BOOL IsForceClear() const {return m_bForceClear;} 381 bool IsForceClear() const {return m_bForceClear;}
382 CPDF_CountedColorSpace* FindColorSpacePtr(CPDF_Object* pCSObj) const; 382 CPDF_CountedColorSpace* FindColorSpacePtr(CPDF_Object* pCSObj) const;
383 CPDF_CountedPattern* FindPatternPtr(CPDF_Object* pPatternObj) const; 383 CPDF_CountedPattern* FindPatternPtr(CPDF_Object* pPatternObj) const;
384 384
385 private: 385 private:
386 using CPDF_CountedFont = CPDF_CountedObject<CPDF_Font>; 386 using CPDF_CountedFont = CPDF_CountedObject<CPDF_Font>;
387 using CPDF_CountedIccProfile = CPDF_CountedObject<CPDF_IccProfile>; 387 using CPDF_CountedIccProfile = CPDF_CountedObject<CPDF_IccProfile>;
388 using CPDF_CountedImage = CPDF_CountedObject<CPDF_Image>; 388 using CPDF_CountedImage = CPDF_CountedObject<CPDF_Image>;
389 using CPDF_CountedStreamAcc = CPDF_CountedObject<CPDF_StreamAcc>; 389 using CPDF_CountedStreamAcc = CPDF_CountedObject<CPDF_StreamAcc>;
390 390
391 using CPDF_ColorSpaceMap = std::map<CPDF_Object*, CPDF_CountedColorSpace*>; 391 using CPDF_ColorSpaceMap = std::map<CPDF_Object*, CPDF_CountedColorSpace*>;
392 using CPDF_FontFileMap = std::map<CPDF_Stream*, CPDF_CountedStreamAcc*>; 392 using CPDF_FontFileMap = std::map<CPDF_Stream*, CPDF_CountedStreamAcc*>;
393 using CPDF_FontMap = std::map<CPDF_Dictionary*, CPDF_CountedFont*>; 393 using CPDF_FontMap = std::map<CPDF_Dictionary*, CPDF_CountedFont*>;
394 using CPDF_IccProfileMap = std::map<CPDF_Stream*, CPDF_CountedIccProfile*>; 394 using CPDF_IccProfileMap = std::map<CPDF_Stream*, CPDF_CountedIccProfile*>;
395 using CPDF_ImageMap = std::map<FX_DWORD, CPDF_CountedImage*>; 395 using CPDF_ImageMap = std::map<FX_DWORD, CPDF_CountedImage*>;
396 using CPDF_PatternMap = std::map<CPDF_Object*, CPDF_CountedPattern*>; 396 using CPDF_PatternMap = std::map<CPDF_Object*, CPDF_CountedPattern*>;
397 397
398 CPDF_Document* const m_pPDFDoc; 398 CPDF_Document* const m_pPDFDoc;
399 CFX_MapByteStringToPtr m_HashProfileMap; 399 CFX_MapByteStringToPtr m_HashProfileMap;
400 FX_BOOL m_bForceClear; 400 bool m_bForceClear;
401 401
402 CPDF_ColorSpaceMap m_ColorSpaceMap; 402 CPDF_ColorSpaceMap m_ColorSpaceMap;
403 CPDF_FontFileMap m_FontFileMap; 403 CPDF_FontFileMap m_FontFileMap;
404 CPDF_FontMap m_FontMap; 404 CPDF_FontMap m_FontMap;
405 CPDF_IccProfileMap m_IccProfileMap; 405 CPDF_IccProfileMap m_IccProfileMap;
406 CPDF_ImageMap m_ImageMap; 406 CPDF_ImageMap m_ImageMap;
407 CPDF_PatternMap m_PatternMap; 407 CPDF_PatternMap m_PatternMap;
408 }; 408 };
409 409
410 class CPDF_Function 410 class CPDF_Function
411 { 411 {
412 public: 412 public:
413 static CPDF_Function* Load(CPDF_Object* pFuncObj); 413 static CPDF_Function* Load(CPDF_Object* pFuncObj);
414 virtual ~CPDF_Function(); 414 virtual ~CPDF_Function();
415 FX_BOOL» » Call(FX_FLOAT* inputs, int ninputs, FX_FLOAT* results, i nt& nresults) const; 415 bool» » Call(FX_FLOAT* inputs, int ninputs, FX_FLOAT* results, i nt& nresults) const;
416 int CountInputs() 416 int CountInputs()
417 { 417 {
418 return m_nInputs; 418 return m_nInputs;
419 } 419 }
420 int CountOutputs() 420 int CountOutputs()
421 { 421 {
422 return m_nOutputs; 422 return m_nOutputs;
423 } 423 }
424 protected: 424 protected:
425 CPDF_Function(); 425 CPDF_Function();
426 int m_nInputs, m_nOutputs; 426 int m_nInputs, m_nOutputs;
427 FX_FLOAT* m_pDomains; 427 FX_FLOAT* m_pDomains;
428 FX_FLOAT* m_pRanges; 428 FX_FLOAT* m_pRanges;
429 FX_BOOL» » Init(CPDF_Object* pObj); 429 bool» » Init(CPDF_Object* pObj);
430 virtual FX_BOOL» v_Init(CPDF_Object* pObj) = 0; 430 virtual bool» v_Init(CPDF_Object* pObj) = 0;
431 virtual FX_BOOL» v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const = 0; 431 virtual bool» v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const = 0;
432 }; 432 };
433 class CPDF_IccProfile 433 class CPDF_IccProfile
434 { 434 {
435 public: 435 public:
436 CPDF_IccProfile(const uint8_t* pData, FX_DWORD dwSize); 436 CPDF_IccProfile(const uint8_t* pData, FX_DWORD dwSize);
437 ~CPDF_IccProfile(); 437 ~CPDF_IccProfile();
438 int32_t GetComponents() const { return m_nSrcComponents; } 438 int32_t GetComponents() const { return m_nSrcComponents; }
439 FX_BOOL» » » » » m_bsRGB; 439 bool» » » » » m_bsRGB;
440 void* m_pTransform; 440 void* m_pTransform;
441 private: 441 private:
442 int32_t m_nSrcComponents; 442 int32_t m_nSrcComponents;
443 }; 443 };
444 444
445 class CPDF_DeviceCS : public CPDF_ColorSpace 445 class CPDF_DeviceCS : public CPDF_ColorSpace
446 { 446 {
447 public: 447 public:
448 CPDF_DeviceCS(CPDF_Document* pDoc, int family); 448 CPDF_DeviceCS(CPDF_Document* pDoc, int family);
449 449
450 FX_BOOL GetRGB(FX_FLOAT* pBuf, 450 bool GetRGB(FX_FLOAT* pBuf,
451 FX_FLOAT& R, 451 FX_FLOAT& R,
452 FX_FLOAT& G, 452 FX_FLOAT& G,
453 FX_FLOAT& B) const override; 453 FX_FLOAT& B) const override;
454 FX_BOOL SetRGB(FX_FLOAT* pBuf, 454 bool SetRGB(FX_FLOAT* pBuf,
455 FX_FLOAT R, 455 FX_FLOAT R,
456 FX_FLOAT G, 456 FX_FLOAT G,
457 FX_FLOAT B) const override; 457 FX_FLOAT B) const override;
458 FX_BOOL v_GetCMYK(FX_FLOAT* pBuf, 458 bool v_GetCMYK(FX_FLOAT* pBuf,
459 FX_FLOAT& c, 459 FX_FLOAT& c,
460 FX_FLOAT& m, 460 FX_FLOAT& m,
461 FX_FLOAT& y, 461 FX_FLOAT& y,
462 FX_FLOAT& k) const override; 462 FX_FLOAT& k) const override;
463 FX_BOOL v_SetCMYK(FX_FLOAT* pBuf, 463 bool v_SetCMYK(FX_FLOAT* pBuf,
464 FX_FLOAT c, 464 FX_FLOAT c,
465 FX_FLOAT m, 465 FX_FLOAT m,
466 FX_FLOAT y, 466 FX_FLOAT y,
467 FX_FLOAT k) const override; 467 FX_FLOAT k) const override;
468 void TranslateImageLine(uint8_t* pDestBuf, 468 void TranslateImageLine(uint8_t* pDestBuf,
469 const uint8_t* pSrcBuf, 469 const uint8_t* pSrcBuf,
470 int pixels, 470 int pixels,
471 int image_width, 471 int image_width,
472 int image_height, 472 int image_height,
473 FX_BOOL bTransMask = FALSE) const override; 473 bool bTransMask = false) const override;
474 }; 474 };
475 475
476 class CPDF_PatternCS : public CPDF_ColorSpace 476 class CPDF_PatternCS : public CPDF_ColorSpace
477 { 477 {
478 public: 478 public:
479 explicit CPDF_PatternCS(CPDF_Document* pDoc) 479 explicit CPDF_PatternCS(CPDF_Document* pDoc)
480 : CPDF_ColorSpace(pDoc, PDFCS_PATTERN, 1), 480 : CPDF_ColorSpace(pDoc, PDFCS_PATTERN, 1),
481 m_pBaseCS(nullptr), 481 m_pBaseCS(nullptr),
482 m_pCountedBaseCS(nullptr) { 482 m_pCountedBaseCS(nullptr) {
483 } 483 }
484 ~CPDF_PatternCS() override; 484 ~CPDF_PatternCS() override;
485 FX_BOOL v_Load(CPDF_Document* pDoc, CPDF_Array* pArray) override; 485 bool v_Load(CPDF_Document* pDoc, CPDF_Array* pArray) override;
486 FX_BOOL GetRGB(FX_FLOAT* pBuf, 486 bool GetRGB(FX_FLOAT* pBuf,
487 FX_FLOAT& R, 487 FX_FLOAT& R,
488 FX_FLOAT& G, 488 FX_FLOAT& G,
489 FX_FLOAT& B) const override; 489 FX_FLOAT& B) const override;
490 CPDF_ColorSpace* GetBaseCS() const override; 490 CPDF_ColorSpace* GetBaseCS() const override;
491 491
492 private: 492 private:
493 CPDF_ColorSpace* m_pBaseCS; 493 CPDF_ColorSpace* m_pBaseCS;
494 CPDF_CountedColorSpace* m_pCountedBaseCS; 494 CPDF_CountedColorSpace* m_pCountedBaseCS;
495 }; 495 };
496 496
497 #endif // CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_ 497 #endif // CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_
OLDNEW
« no previous file with comments | « core/src/fpdfapi/fpdf_page/fpdf_page_pattern.cpp ('k') | core/src/fpdfapi/fpdf_parser/filters_int.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698