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

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

Issue 1436573003: Use unique_ptr and initializer lists in various render files. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: rebase Created 5 years, 1 month 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
« no previous file with comments | « core/src/fpdfapi/fpdf_render/fpdf_render_image.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
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_AffineMatrix* 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 class CPDF_TransferFunc { 58 class CPDF_TransferFunc {
58 public: 59 public:
59 CPDF_Document* m_pPDFDoc; 60 explicit CPDF_TransferFunc(CPDF_Document* pDoc);
60 uint8_t m_Samples[256 * 3];
61 FX_BOOL m_bIdentity;
62 61
62 FX_COLORREF TranslateColor(FX_COLORREF src) const;
63 CFX_DIBSource* TranslateImage(const CFX_DIBSource* pSrc, 63 CFX_DIBSource* TranslateImage(const CFX_DIBSource* pSrc,
64 FX_BOOL bAutoDropSrc); 64 FX_BOOL bAutoDropSrc);
65 FX_COLORREF TranslateColor(FX_COLORREF src); 65
66 CPDF_Document* const m_pPDFDoc;
67 FX_BOOL m_bIdentity;
68 uint8_t m_Samples[256 * 3];
66 }; 69 };
67 70
68 class CPDF_DocRenderData { 71 class CPDF_DocRenderData {
69 public: 72 public:
70 CPDF_DocRenderData(CPDF_Document* pPDFDoc = NULL); 73 CPDF_DocRenderData(CPDF_Document* pPDFDoc = NULL);
71 ~CPDF_DocRenderData(); 74 ~CPDF_DocRenderData();
72 CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); 75 CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont);
73 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObj); 76 CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObj);
74 CFX_FontCache* GetFontCache() { return m_pFontCache; } 77 CFX_FontCache* GetFontCache() { return m_pFontCache; }
75 void Clear(FX_BOOL bRelease = FALSE); 78 void Clear(FX_BOOL bRelease = FALSE);
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 static const int kRenderMaxRecursionDepth = 64; 249 static const int kRenderMaxRecursionDepth = 64;
247 static int s_CurrentRecursionDepth; 250 static int s_CurrentRecursionDepth;
248 251
249 CFX_RenderDevice* m_pDevice; 252 CFX_RenderDevice* m_pDevice;
250 CFX_AffineMatrix m_DeviceMatrix; 253 CFX_AffineMatrix m_DeviceMatrix;
251 CPDF_ClipPath m_LastClipPath; 254 CPDF_ClipPath m_LastClipPath;
252 const CPDF_PageObject* m_pCurObj; 255 const CPDF_PageObject* m_pCurObj;
253 const CPDF_PageObject* m_pStopObj; 256 const CPDF_PageObject* m_pStopObj;
254 CPDF_GraphicStates m_InitialStates; 257 CPDF_GraphicStates m_InitialStates;
255 int m_HalftoneLimit; 258 int m_HalftoneLimit;
256 IPDF_ObjectRenderer* m_pObjectRenderer; 259 nonstd::unique_ptr<IPDF_ObjectRenderer> m_pObjectRenderer;
257 FX_BOOL m_bPrint; 260 FX_BOOL m_bPrint;
258 int m_Transparency; 261 int m_Transparency;
259 int m_DitherBits; 262 int m_DitherBits;
260 FX_BOOL m_bDropObjects; 263 FX_BOOL m_bDropObjects;
261 FX_BOOL m_bStdCS; 264 FX_BOOL m_bStdCS;
262 FX_DWORD m_GroupFamily; 265 FX_DWORD m_GroupFamily;
263 FX_BOOL m_bLoadMask; 266 FX_BOOL m_bLoadMask;
264 CPDF_Type3Char* m_pType3Char; 267 CPDF_Type3Char* m_pType3Char;
265 FX_ARGB m_T3FillColor; 268 FX_ARGB m_T3FillColor;
266 int m_curBlend; 269 int m_curBlend;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 FX_BOOL StartRenderDIBSource(); 378 FX_BOOL StartRenderDIBSource();
376 FX_BOOL StartLoadDIBSource(); 379 FX_BOOL StartLoadDIBSource();
377 FX_BOOL DrawMaskedImage(); 380 FX_BOOL DrawMaskedImage();
378 FX_BOOL DrawPatternImage(const CFX_Matrix* pObj2Device); 381 FX_BOOL DrawPatternImage(const CFX_Matrix* pObj2Device);
379 }; 382 };
380 383
381 class CPDF_ScaledRenderBuffer { 384 class CPDF_ScaledRenderBuffer {
382 public: 385 public:
383 CPDF_ScaledRenderBuffer(); 386 CPDF_ScaledRenderBuffer();
384 ~CPDF_ScaledRenderBuffer(); 387 ~CPDF_ScaledRenderBuffer();
388
385 FX_BOOL Initialize(CPDF_RenderContext* pContext, 389 FX_BOOL Initialize(CPDF_RenderContext* pContext,
386 CFX_RenderDevice* pDevice, 390 CFX_RenderDevice* pDevice,
387 FX_RECT* pRect, 391 FX_RECT* pRect,
388 const CPDF_PageObject* pObj, 392 const CPDF_PageObject* pObj,
389 const CPDF_RenderOptions* pOptions = NULL, 393 const CPDF_RenderOptions* pOptions = NULL,
390 int max_dpi = 0); 394 int max_dpi = 0);
391 CFX_RenderDevice* GetDevice() { 395 CFX_RenderDevice* GetDevice() {
392 return m_pBitmapDevice ? m_pBitmapDevice : m_pDevice; 396 return m_pBitmapDevice ? m_pBitmapDevice.get() : m_pDevice;
393 } 397 }
394 CFX_AffineMatrix* GetMatrix() { return &m_Matrix; } 398 CFX_AffineMatrix* GetMatrix() { return &m_Matrix; }
395 void OutputToDevice(); 399 void OutputToDevice();
396 400
397 private: 401 private:
398 CFX_RenderDevice* m_pDevice; 402 CFX_RenderDevice* m_pDevice;
399 CPDF_RenderContext* m_pContext; 403 CPDF_RenderContext* m_pContext;
400 FX_RECT m_Rect; 404 FX_RECT m_Rect;
401 const CPDF_PageObject* m_pObject; 405 const CPDF_PageObject* m_pObject;
402 CFX_FxgeDevice* m_pBitmapDevice; 406 nonstd::unique_ptr<CFX_FxgeDevice> m_pBitmapDevice;
403 CFX_AffineMatrix m_Matrix; 407 CFX_AffineMatrix m_Matrix;
404 }; 408 };
409
405 class ICodec_ScanlineDecoder; 410 class ICodec_ScanlineDecoder;
406 class CPDF_QuickStretcher { 411 class CPDF_QuickStretcher {
407 public: 412 public:
408 CPDF_QuickStretcher(); 413 CPDF_QuickStretcher();
409 ~CPDF_QuickStretcher(); 414 ~CPDF_QuickStretcher();
410 FX_BOOL Start(CPDF_ImageObject* pImageObj, 415 FX_BOOL Start(CPDF_ImageObject* pImageObj,
411 CFX_AffineMatrix* pImage2Device, 416 CFX_AffineMatrix* pImage2Device,
412 const FX_RECT* pClipBox); 417 const FX_RECT* pClipBox);
413 FX_BOOL Continue(IFX_Pause* pPause); 418 FX_BOOL Continue(IFX_Pause* pPause);
414 CFX_DIBitmap* m_pBitmap; 419 CFX_DIBitmap* m_pBitmap;
415 int m_ResultLeft, m_ResultTop, m_ClipLeft, m_ClipTop; 420 int m_ResultLeft, m_ResultTop, m_ClipLeft, m_ClipTop;
416 int m_DestWidth, m_DestHeight, m_ResultWidth, m_ResultHeight; 421 int m_DestWidth, m_DestHeight, m_ResultWidth, m_ResultHeight;
417 int m_Bpp, m_SrcWidth, m_SrcHeight; 422 int m_Bpp, m_SrcWidth, m_SrcHeight;
418 FX_BOOL m_bFlipX, m_bFlipY; 423 FX_BOOL m_bFlipX, m_bFlipY;
419 CPDF_ColorSpace* m_pCS; 424 CPDF_ColorSpace* m_pCS;
420 ICodec_ScanlineDecoder* m_pDecoder; 425 ICodec_ScanlineDecoder* m_pDecoder;
421 CPDF_StreamAcc m_StreamAcc; 426 CPDF_StreamAcc m_StreamAcc;
422 int m_LineIndex; 427 int m_LineIndex;
423 }; 428 };
429
424 class CPDF_DeviceBuffer { 430 class CPDF_DeviceBuffer {
425 public: 431 public:
426 CPDF_DeviceBuffer(); 432 CPDF_DeviceBuffer();
427 ~CPDF_DeviceBuffer(); 433 ~CPDF_DeviceBuffer();
428 FX_BOOL Initialize(CPDF_RenderContext* pContext, 434 FX_BOOL Initialize(CPDF_RenderContext* pContext,
429 CFX_RenderDevice* pDevice, 435 CFX_RenderDevice* pDevice,
430 FX_RECT* pRect, 436 FX_RECT* pRect,
431 const CPDF_PageObject* pObj, 437 const CPDF_PageObject* pObj,
432 int max_dpi = 0); 438 int max_dpi = 0);
433 void OutputToDevice(); 439 void OutputToDevice();
434 CFX_DIBitmap* GetBitmap() const { return m_pBitmap; } 440 CFX_DIBitmap* GetBitmap() const { return m_pBitmap.get(); }
435 const CFX_AffineMatrix* GetMatrix() const { return &m_Matrix; } 441 const CFX_AffineMatrix* GetMatrix() const { return &m_Matrix; }
436 442
437 private: 443 private:
438 CFX_RenderDevice* m_pDevice; 444 CFX_RenderDevice* m_pDevice;
439 CPDF_RenderContext* m_pContext; 445 CPDF_RenderContext* m_pContext;
440 FX_RECT m_Rect; 446 FX_RECT m_Rect;
441 const CPDF_PageObject* m_pObject; 447 const CPDF_PageObject* m_pObject;
442 CFX_DIBitmap* m_pBitmap; 448 nonstd::unique_ptr<CFX_DIBitmap> m_pBitmap;
443 CFX_AffineMatrix m_Matrix; 449 CFX_AffineMatrix m_Matrix;
444 }; 450 };
451
445 class CPDF_ImageCache { 452 class CPDF_ImageCache {
446 public: 453 public:
447 CPDF_ImageCache(CPDF_Document* pDoc, CPDF_Stream* pStream); 454 CPDF_ImageCache(CPDF_Document* pDoc, CPDF_Stream* pStream);
448 ~CPDF_ImageCache(); 455 ~CPDF_ImageCache();
449 void ClearImageData(); 456 void ClearImageData();
450 void Reset(const CFX_DIBitmap* pBitmap); 457 void Reset(const CFX_DIBitmap* pBitmap);
451 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap, 458 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap,
452 CFX_DIBSource*& pMask, 459 CFX_DIBSource*& pMask,
453 FX_DWORD& MatteColor, 460 FX_DWORD& MatteColor,
454 CPDF_Dictionary* pPageResources, 461 CPDF_Dictionary* pPageResources,
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 const uint8_t* m_RampB; 644 const uint8_t* m_RampB;
638 }; 645 };
639 646
640 struct _CPDF_UniqueKeyGen { 647 struct _CPDF_UniqueKeyGen {
641 void Generate(int count, ...); 648 void Generate(int count, ...);
642 FX_CHAR m_Key[128]; 649 FX_CHAR m_Key[128];
643 int m_KeyLen; 650 int m_KeyLen;
644 }; 651 };
645 652
646 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ 653 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_
OLDNEW
« no previous file with comments | « core/src/fpdfapi/fpdf_render/fpdf_render_image.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698