diff options
author | dsinclair <dsinclair@chromium.org> | 2016-10-04 12:18:35 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-10-04 12:18:35 -0700 |
commit | 69d9c68e705afa7a4008feb9bbeb19cea887ed47 (patch) | |
tree | b5509c51aeeb89c99c7a4e0a60f8e5f29af5245c /core/fpdfapi/render/cpdf_pagerendercache.h | |
parent | 488b7ad845d6de212d89cd957303b294ecfa5922 (diff) | |
download | pdfium-69d9c68e705afa7a4008feb9bbeb19cea887ed47.tar.xz |
Move core/fpdfapi/fpdf_render to core/fpdfapi/render
BUG=pdfium:603
Review-Url: https://codereview.chromium.org/2393593002
Diffstat (limited to 'core/fpdfapi/render/cpdf_pagerendercache.h')
-rw-r--r-- | core/fpdfapi/render/cpdf_pagerendercache.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/core/fpdfapi/render/cpdf_pagerendercache.h b/core/fpdfapi/render/cpdf_pagerendercache.h new file mode 100644 index 0000000000..37d092062d --- /dev/null +++ b/core/fpdfapi/render/cpdf_pagerendercache.h @@ -0,0 +1,71 @@ +// Copyright 2016 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef CORE_FPDFAPI_RENDER_CPDF_PAGERENDERCACHE_H_ +#define CORE_FPDFAPI_RENDER_CPDF_PAGERENDERCACHE_H_ + +#include <map> + +#include "core/fxcrt/fx_system.h" + +class CPDF_Stream; +class CPDF_ImageCacheEntry; +class CPDF_Page; +class CPDF_RenderStatus; +class CFX_DIBitmap; +class CFX_DIBSource; +class IFX_Pause; + +class CPDF_PageRenderCache { + public: + explicit CPDF_PageRenderCache(CPDF_Page* pPage); + ~CPDF_PageRenderCache(); + + uint32_t EstimateSize(); + void CacheOptimization(int32_t dwLimitCacheSize); + uint32_t GetTimeCount() const { return m_nTimeCount; } + void SetTimeCount(uint32_t dwTimeCount) { m_nTimeCount = dwTimeCount; } + + void GetCachedBitmap(CPDF_Stream* pStream, + CFX_DIBSource*& pBitmap, + CFX_DIBSource*& pMask, + uint32_t& MatteColor, + FX_BOOL bStdCS = FALSE, + uint32_t GroupFamily = 0, + FX_BOOL bLoadMask = FALSE, + CPDF_RenderStatus* pRenderStatus = nullptr, + int32_t downsampleWidth = 0, + int32_t downsampleHeight = 0); + + void ResetBitmap(CPDF_Stream* pStream, const CFX_DIBitmap* pBitmap); + void ClearImageCacheEntry(CPDF_Stream* pStream); + CPDF_Page* GetPage() const { return m_pPage; } + CPDF_ImageCacheEntry* GetCurImageCacheEntry() const { + return m_pCurImageCacheEntry; + } + + FX_BOOL StartGetCachedBitmap(CPDF_Stream* pStream, + FX_BOOL bStdCS = FALSE, + uint32_t GroupFamily = 0, + FX_BOOL bLoadMask = FALSE, + CPDF_RenderStatus* pRenderStatus = nullptr, + int32_t downsampleWidth = 0, + int32_t downsampleHeight = 0); + + FX_BOOL Continue(IFX_Pause* pPause); + + protected: + friend class CPDF_Page; + + CPDF_Page* const m_pPage; + CPDF_ImageCacheEntry* m_pCurImageCacheEntry; + std::map<CPDF_Stream*, CPDF_ImageCacheEntry*> m_ImageCache; + uint32_t m_nTimeCount; + uint32_t m_nCacheSize; + FX_BOOL m_bCurFindCache; +}; + +#endif // CORE_FPDFAPI_RENDER_CPDF_PAGERENDERCACHE_H_ |