1 // Copyright 2016 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef CORE_FPDFAPI_RENDER_CPDF_IMAGELOADER_H_ 8 #define CORE_FPDFAPI_RENDER_CPDF_IMAGELOADER_H_ 9 10 #include "core/fxcrt/retain_ptr.h" 11 #include "core/fxcrt/unowned_ptr.h" 12 13 class CFX_DIBBase; 14 class CPDF_ImageObject; 15 class CPDF_PageRenderCache; 16 class CPDF_RenderStatus; 17 class CPDF_TransferFunc; 18 class PauseIndicatorIface; 19 20 class CPDF_ImageLoader { 21 public: 22 CPDF_ImageLoader(); 23 ~CPDF_ImageLoader(); 24 25 bool Start(CPDF_ImageObject* pImage, 26 const CPDF_RenderStatus* pRenderStatus, 27 bool bStdCS); 28 bool Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus); 29 30 RetainPtr<CFX_DIBBase> TranslateImage( 31 const RetainPtr<CPDF_TransferFunc>& pTransferFunc); 32 GetBitmap()33 const RetainPtr<CFX_DIBBase>& GetBitmap() const { return m_pBitmap; } GetMask()34 const RetainPtr<CFX_DIBBase>& GetMask() const { return m_pMask; } MatteColor()35 uint32_t MatteColor() const { return m_MatteColor; } 36 37 private: 38 void HandleFailure(); 39 40 uint32_t m_MatteColor = 0; 41 bool m_bCached = false; 42 RetainPtr<CFX_DIBBase> m_pBitmap; 43 RetainPtr<CFX_DIBBase> m_pMask; 44 UnownedPtr<CPDF_PageRenderCache> m_pCache; 45 UnownedPtr<CPDF_ImageObject> m_pImageObject; 46 }; 47 48 #endif // CORE_FPDFAPI_RENDER_CPDF_IMAGELOADER_H_ 49