| 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_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> |
| 11 | 11 |
| 12 #include "core/include/fpdfapi/fpdf_pageobj.h" | 12 #include "core/include/fpdfapi/fpdf_pageobj.h" |
| 13 #include "core/include/fpdfapi/fpdf_render.h" | 13 #include "core/include/fpdfapi/fpdf_render.h" |
| 14 #include "third_party/base/nonstd_unique_ptr.h" | 14 #include "third_party/base/nonstd_unique_ptr.h" |
| 15 | 15 |
| 16 class CFX_GlyphBitmap; | 16 class CFX_GlyphBitmap; |
| 17 class CPDF_ImageCache; | 17 class CPDF_ImageCacheEntry; |
| 18 class CPDF_QuickStretcher; | 18 class CPDF_QuickStretcher; |
| 19 | 19 |
| 20 #define TYPE3_MAX_BLUES 16 | 20 #define TYPE3_MAX_BLUES 16 |
| 21 | 21 |
| 22 class CPDF_Type3Glyphs { | 22 class CPDF_Type3Glyphs { |
| 23 public: | 23 public: |
| 24 CPDF_Type3Glyphs() : m_TopBlueCount(0), m_BottomBlueCount(0) {} | 24 CPDF_Type3Glyphs() : m_TopBlueCount(0), m_BottomBlueCount(0) {} |
| 25 ~CPDF_Type3Glyphs(); | 25 ~CPDF_Type3Glyphs(); |
| 26 void AdjustBlue(FX_FLOAT top, | 26 void AdjustBlue(FX_FLOAT top, |
| 27 FX_FLOAT bottom, | 27 FX_FLOAT bottom, |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 FX_BOOL ProcessImage(CPDF_ImageObject* pImageObj, | 179 FX_BOOL ProcessImage(CPDF_ImageObject* pImageObj, |
| 180 const CFX_Matrix* pObj2Device); | 180 const CFX_Matrix* pObj2Device); |
| 181 FX_BOOL OutputBitmapAlpha(CPDF_ImageObject* pImageObj, | 181 FX_BOOL OutputBitmapAlpha(CPDF_ImageObject* pImageObj, |
| 182 const CFX_Matrix* pImage2Device); | 182 const CFX_Matrix* pImage2Device); |
| 183 FX_BOOL OutputImage(CPDF_ImageObject* pImageObj, | 183 FX_BOOL OutputImage(CPDF_ImageObject* pImageObj, |
| 184 const CFX_Matrix* pImage2Device); | 184 const CFX_Matrix* pImage2Device); |
| 185 FX_BOOL OutputDIBSource(const CFX_DIBSource* pOutputBitmap, | 185 FX_BOOL OutputDIBSource(const CFX_DIBSource* pOutputBitmap, |
| 186 FX_ARGB fill_argb, | 186 FX_ARGB fill_argb, |
| 187 int bitmap_alpha, | 187 int bitmap_alpha, |
| 188 const CFX_Matrix* pImage2Device, | 188 const CFX_Matrix* pImage2Device, |
| 189 CPDF_ImageCache* pImageCache, | 189 CPDF_ImageCacheEntry* pImageCache, |
| 190 FX_DWORD flags); | 190 FX_DWORD flags); |
| 191 void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, | 191 void CompositeDIBitmap(CFX_DIBitmap* pDIBitmap, |
| 192 int left, | 192 int left, |
| 193 int top, | 193 int top, |
| 194 FX_ARGB mask_argb, | 194 FX_ARGB mask_argb, |
| 195 int bitmap_alpha, | 195 int bitmap_alpha, |
| 196 int blend_mode, | 196 int blend_mode, |
| 197 int bIsolated); | 197 int bIsolated); |
| 198 FX_BOOL ProcessShading(CPDF_ShadingObject* pShadingObj, | 198 FX_BOOL ProcessShading(CPDF_ShadingObject* pShadingObj, |
| 199 const CFX_Matrix* pObj2Device); | 199 const CFX_Matrix* pObj2Device); |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 | 438 |
| 439 private: | 439 private: |
| 440 CFX_RenderDevice* m_pDevice; | 440 CFX_RenderDevice* m_pDevice; |
| 441 CPDF_RenderContext* m_pContext; | 441 CPDF_RenderContext* m_pContext; |
| 442 FX_RECT m_Rect; | 442 FX_RECT m_Rect; |
| 443 const CPDF_PageObject* m_pObject; | 443 const CPDF_PageObject* m_pObject; |
| 444 nonstd::unique_ptr<CFX_DIBitmap> m_pBitmap; | 444 nonstd::unique_ptr<CFX_DIBitmap> m_pBitmap; |
| 445 CFX_Matrix m_Matrix; | 445 CFX_Matrix m_Matrix; |
| 446 }; | 446 }; |
| 447 | 447 |
| 448 class CPDF_ImageCache { | 448 class CPDF_ImageCacheEntry { |
| 449 public: | 449 public: |
| 450 CPDF_ImageCache(CPDF_Document* pDoc, CPDF_Stream* pStream); | 450 CPDF_ImageCacheEntry(CPDF_Document* pDoc, CPDF_Stream* pStream); |
| 451 ~CPDF_ImageCache(); | 451 ~CPDF_ImageCacheEntry(); |
| 452 void ClearImageData(); | 452 void ClearImageData(); |
| 453 void Reset(const CFX_DIBitmap* pBitmap); | 453 void Reset(const CFX_DIBitmap* pBitmap); |
| 454 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap, | 454 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap, |
| 455 CFX_DIBSource*& pMask, | 455 CFX_DIBSource*& pMask, |
| 456 FX_DWORD& MatteColor, | 456 FX_DWORD& MatteColor, |
| 457 CPDF_Dictionary* pPageResources, | 457 CPDF_Dictionary* pPageResources, |
| 458 FX_BOOL bStdCS = FALSE, | 458 FX_BOOL bStdCS = FALSE, |
| 459 FX_DWORD GroupFamily = 0, | 459 FX_DWORD GroupFamily = 0, |
| 460 FX_BOOL bLoadMask = FALSE, | 460 FX_BOOL bLoadMask = FALSE, |
| 461 CPDF_RenderStatus* pRenderStatus = NULL, | 461 CPDF_RenderStatus* pRenderStatus = NULL, |
| 462 int32_t downsampleWidth = 0, | 462 int32_t downsampleWidth = 0, |
| 463 int32_t downsampleHeight = 0); | 463 int32_t downsampleHeight = 0); |
| 464 FX_DWORD EstimateSize() const { return m_dwCacheSize; } | 464 FX_DWORD EstimateSize() const { return m_dwCacheSize; } |
| 465 FX_DWORD GetTimeCount() const { return m_dwTimeCount; } | 465 FX_DWORD GetTimeCount() const { return m_dwTimeCount; } |
| 466 CPDF_Stream* GetStream() const { return m_pStream; } | 466 CPDF_Stream* GetStream() const { return m_pStream; } |
| 467 void SetTimeCount(FX_DWORD dwTimeCount) { m_dwTimeCount = dwTimeCount; } | 467 void SetTimeCount(FX_DWORD dwTimeCount) { m_dwTimeCount = dwTimeCount; } |
| 468 int m_dwTimeCount; | 468 int m_dwTimeCount; |
| 469 | 469 |
| 470 public: | 470 public: |
| 471 int StartGetCachedBitmap(CPDF_Dictionary* pFormResources, | 471 int StartGetCachedBitmap(CPDF_Dictionary* pFormResources, |
| 472 CPDF_Dictionary* pPageResources, | 472 CPDF_Dictionary* pPageResources, |
| 473 FX_BOOL bStdCS = FALSE, | 473 FX_BOOL bStdCS = FALSE, |
| 474 FX_DWORD GroupFamily = 0, | 474 FX_DWORD GroupFamily = 0, |
| 475 FX_BOOL bLoadMask = FALSE, | 475 FX_BOOL bLoadMask = FALSE, |
| 476 CPDF_RenderStatus* pRenderStatus = NULL, | 476 CPDF_RenderStatus* pRenderStatus = NULL, |
| 477 int32_t downsampleWidth = 0, | 477 int32_t downsampleWidth = 0, |
| 478 int32_t downsampleHeight = 0); | 478 int32_t downsampleHeight = 0); |
| 479 int Continue(IFX_Pause* pPause); | 479 int Continue(IFX_Pause* pPause); |
| 480 int ContinueGetCachedBitmap(); | |
| 481 CFX_DIBSource* DetachBitmap(); | 480 CFX_DIBSource* DetachBitmap(); |
| 482 CFX_DIBSource* DetachMask(); | 481 CFX_DIBSource* DetachMask(); |
| 483 CFX_DIBSource* m_pCurBitmap; | 482 CFX_DIBSource* m_pCurBitmap; |
| 484 CFX_DIBSource* m_pCurMask; | 483 CFX_DIBSource* m_pCurMask; |
| 485 FX_DWORD m_MatteColor; | 484 FX_DWORD m_MatteColor; |
| 486 CPDF_RenderStatus* m_pRenderStatus; | 485 CPDF_RenderStatus* m_pRenderStatus; |
| 487 | 486 |
| 488 protected: | 487 protected: |
| 488 void ContinueGetCachedBitmap(); |
| 489 |
| 489 CPDF_Document* m_pDocument; | 490 CPDF_Document* m_pDocument; |
| 490 CPDF_Stream* m_pStream; | 491 CPDF_Stream* m_pStream; |
| 491 CFX_DIBSource* m_pCachedBitmap; | 492 CFX_DIBSource* m_pCachedBitmap; |
| 492 CFX_DIBSource* m_pCachedMask; | 493 CFX_DIBSource* m_pCachedMask; |
| 493 FX_DWORD m_dwCacheSize; | 494 FX_DWORD m_dwCacheSize; |
| 494 void CalcSize(); | 495 void CalcSize(); |
| 495 }; | 496 }; |
| 496 typedef struct { | 497 typedef struct { |
| 497 FX_FLOAT m_DecodeMin; | 498 FX_FLOAT m_DecodeMin; |
| 498 FX_FLOAT m_DecodeStep; | 499 FX_FLOAT m_DecodeStep; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 const uint8_t* m_RampB; | 641 const uint8_t* m_RampB; |
| 641 }; | 642 }; |
| 642 | 643 |
| 643 struct _CPDF_UniqueKeyGen { | 644 struct _CPDF_UniqueKeyGen { |
| 644 void Generate(int count, ...); | 645 void Generate(int count, ...); |
| 645 FX_CHAR m_Key[128]; | 646 FX_CHAR m_Key[128]; |
| 646 int m_KeyLen; | 647 int m_KeyLen; |
| 647 }; | 648 }; |
| 648 | 649 |
| 649 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ | 650 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ |
| OLD | NEW |