| 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 ICodec_ScanlineDecoder; | 18 class ICodec_ScanlineDecoder; |
| 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 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 | 417 |
| 418 private: | 418 private: |
| 419 CFX_RenderDevice* m_pDevice; | 419 CFX_RenderDevice* m_pDevice; |
| 420 CPDF_RenderContext* m_pContext; | 420 CPDF_RenderContext* m_pContext; |
| 421 FX_RECT m_Rect; | 421 FX_RECT m_Rect; |
| 422 const CPDF_PageObject* m_pObject; | 422 const CPDF_PageObject* m_pObject; |
| 423 nonstd::unique_ptr<CFX_DIBitmap> m_pBitmap; | 423 nonstd::unique_ptr<CFX_DIBitmap> m_pBitmap; |
| 424 CFX_Matrix m_Matrix; | 424 CFX_Matrix m_Matrix; |
| 425 }; | 425 }; |
| 426 | 426 |
| 427 class CPDF_ImageCache { | 427 class CPDF_ImageCacheEntry { |
| 428 public: | 428 public: |
| 429 CPDF_ImageCache(CPDF_Document* pDoc, CPDF_Stream* pStream); | 429 CPDF_ImageCacheEntry(CPDF_Document* pDoc, CPDF_Stream* pStream); |
| 430 ~CPDF_ImageCache(); | 430 ~CPDF_ImageCacheEntry(); |
| 431 void ClearImageData(); | 431 void ClearImageData(); |
| 432 void Reset(const CFX_DIBitmap* pBitmap); | 432 void Reset(const CFX_DIBitmap* pBitmap); |
| 433 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap, | 433 FX_BOOL GetCachedBitmap(CFX_DIBSource*& pBitmap, |
| 434 CFX_DIBSource*& pMask, | 434 CFX_DIBSource*& pMask, |
| 435 FX_DWORD& MatteColor, | 435 FX_DWORD& MatteColor, |
| 436 CPDF_Dictionary* pPageResources, | 436 CPDF_Dictionary* pPageResources, |
| 437 FX_BOOL bStdCS = FALSE, | 437 FX_BOOL bStdCS = FALSE, |
| 438 FX_DWORD GroupFamily = 0, | 438 FX_DWORD GroupFamily = 0, |
| 439 FX_BOOL bLoadMask = FALSE, | 439 FX_BOOL bLoadMask = FALSE, |
| 440 CPDF_RenderStatus* pRenderStatus = NULL, | 440 CPDF_RenderStatus* pRenderStatus = NULL, |
| 441 int32_t downsampleWidth = 0, | 441 int32_t downsampleWidth = 0, |
| 442 int32_t downsampleHeight = 0); | 442 int32_t downsampleHeight = 0); |
| 443 FX_DWORD EstimateSize() const { return m_dwCacheSize; } | 443 FX_DWORD EstimateSize() const { return m_dwCacheSize; } |
| 444 FX_DWORD GetTimeCount() const { return m_dwTimeCount; } | 444 FX_DWORD GetTimeCount() const { return m_dwTimeCount; } |
| 445 CPDF_Stream* GetStream() const { return m_pStream; } | 445 CPDF_Stream* GetStream() const { return m_pStream; } |
| 446 void SetTimeCount(FX_DWORD dwTimeCount) { m_dwTimeCount = dwTimeCount; } | 446 void SetTimeCount(FX_DWORD dwTimeCount) { m_dwTimeCount = dwTimeCount; } |
| 447 int m_dwTimeCount; | 447 int m_dwTimeCount; |
| 448 | 448 |
| 449 public: | 449 public: |
| 450 int StartGetCachedBitmap(CPDF_Dictionary* pFormResources, | 450 int StartGetCachedBitmap(CPDF_Dictionary* pFormResources, |
| 451 CPDF_Dictionary* pPageResources, | 451 CPDF_Dictionary* pPageResources, |
| 452 FX_BOOL bStdCS = FALSE, | 452 FX_BOOL bStdCS = FALSE, |
| 453 FX_DWORD GroupFamily = 0, | 453 FX_DWORD GroupFamily = 0, |
| 454 FX_BOOL bLoadMask = FALSE, | 454 FX_BOOL bLoadMask = FALSE, |
| 455 CPDF_RenderStatus* pRenderStatus = NULL, | 455 CPDF_RenderStatus* pRenderStatus = NULL, |
| 456 int32_t downsampleWidth = 0, | 456 int32_t downsampleWidth = 0, |
| 457 int32_t downsampleHeight = 0); | 457 int32_t downsampleHeight = 0); |
| 458 int Continue(IFX_Pause* pPause); | 458 int Continue(IFX_Pause* pPause); |
| 459 int ContinueGetCachedBitmap(); | |
| 460 CFX_DIBSource* DetachBitmap(); | 459 CFX_DIBSource* DetachBitmap(); |
| 461 CFX_DIBSource* DetachMask(); | 460 CFX_DIBSource* DetachMask(); |
| 462 CFX_DIBSource* m_pCurBitmap; | 461 CFX_DIBSource* m_pCurBitmap; |
| 463 CFX_DIBSource* m_pCurMask; | 462 CFX_DIBSource* m_pCurMask; |
| 464 FX_DWORD m_MatteColor; | 463 FX_DWORD m_MatteColor; |
| 465 CPDF_RenderStatus* m_pRenderStatus; | 464 CPDF_RenderStatus* m_pRenderStatus; |
| 466 | 465 |
| 467 protected: | 466 protected: |
| 467 void ContinueGetCachedBitmap(); |
| 468 |
| 468 CPDF_Document* m_pDocument; | 469 CPDF_Document* m_pDocument; |
| 469 CPDF_Stream* m_pStream; | 470 CPDF_Stream* m_pStream; |
| 470 CFX_DIBSource* m_pCachedBitmap; | 471 CFX_DIBSource* m_pCachedBitmap; |
| 471 CFX_DIBSource* m_pCachedMask; | 472 CFX_DIBSource* m_pCachedMask; |
| 472 FX_DWORD m_dwCacheSize; | 473 FX_DWORD m_dwCacheSize; |
| 473 void CalcSize(); | 474 void CalcSize(); |
| 474 }; | 475 }; |
| 475 typedef struct { | 476 typedef struct { |
| 476 FX_FLOAT m_DecodeMin; | 477 FX_FLOAT m_DecodeMin; |
| 477 FX_FLOAT m_DecodeStep; | 478 FX_FLOAT m_DecodeStep; |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 const uint8_t* m_RampB; | 620 const uint8_t* m_RampB; |
| 620 }; | 621 }; |
| 621 | 622 |
| 622 struct _CPDF_UniqueKeyGen { | 623 struct _CPDF_UniqueKeyGen { |
| 623 void Generate(int count, ...); | 624 void Generate(int count, ...); |
| 624 FX_CHAR m_Key[128]; | 625 FX_CHAR m_Key[128]; |
| 625 int m_KeyLen; | 626 int m_KeyLen; |
| 626 }; | 627 }; |
| 627 | 628 |
| 628 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ | 629 #endif // CORE_SRC_FPDFAPI_FPDF_RENDER_RENDER_INT_H_ |
| OLD | NEW |