Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
cpdf_pageimagecache.h
Go to the documentation of this file.
1
// Copyright 2016 The PDFium Authors
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_PAGE_CPDF_PAGEIMAGECACHE_H_
8
#
define
CORE_FPDFAPI_PAGE_CPDF_PAGEIMAGECACHE_H_
9
10
#
include
<
stdint
.
h
>
11
12
#
include
<
functional
>
13
#
include
<
map
>
14
#
include
<
memory
>
15
16
#
include
"core/fpdfapi/page/cpdf_dib.h"
17
#
include
"core/fxcrt/maybe_owned.h"
18
#
include
"core/fxcrt/retain_ptr.h"
19
#
include
"core/fxcrt/unowned_ptr.h"
20
21
class
CPDF_Dictionary
;
22
class
CPDF_Image;
23
class
CPDF_Page;
24
class
CPDF_Stream;
25
class
PauseIndicatorIface
;
26
27
class
CPDF_PageImageCache
{
28
public
:
29
explicit
CPDF_PageImageCache
(CPDF_Page* pPage);
30
~
CPDF_PageImageCache
();
31
32
void
ResetBitmapForImage
(
RetainPtr
<CPDF_Image> pImage);
33
void
CacheOptimization
(int32_t dwLimitCacheSize);
34
uint32_t
GetTimeCount
()
const
{
return
m_nTimeCount; }
35
CPDF_Page*
GetPage
()
const
{
return
m_pPage; }
36
37
bool
StartGetCachedBitmap
(
RetainPtr
<CPDF_Image> pImage,
38
const
CPDF_Dictionary
* pFormResources,
39
const
CPDF_Dictionary
* pPageResources,
40
bool
bStdCS,
41
CPDF_ColorSpace
::
Family
eFamily,
42
bool
bLoadMask,
43
const
CFX_Size
& max_size_required);
44
45
bool
Continue
(
PauseIndicatorIface
* pPause);
46
47
uint32_t
GetCurMatteColor
()
const
;
48
RetainPtr
<
CFX_DIBBase
>
DetachCurBitmap
();
49
RetainPtr
<
CFX_DIBBase
>
DetachCurMask
();
50
51
private
:
52
class
Entry {
53
public
:
54
explicit
Entry(
RetainPtr
<CPDF_Image> pImage);
55
~Entry();
56
57
void
Reset();
58
uint32_t EstimateSize()
const
{
return
m_dwCacheSize; }
59
uint32_t GetMatteColor()
const
{
return
m_MatteColor; }
60
uint32_t GetTimeCount()
const
{
return
m_dwTimeCount; }
61
void
SetTimeCount(uint32_t count) { m_dwTimeCount = count; }
62
CPDF_Image* GetImage()
const
{
return
m_pImage.Get(); }
63
64
CPDF_DIB::
LoadState
StartGetCachedBitmap(
65
CPDF_PageImageCache
* pPageImageCache,
66
const
CPDF_Dictionary
* pFormResources,
67
const
CPDF_Dictionary
* pPageResources,
68
bool
bStdCS,
69
CPDF_ColorSpace
::
Family
eFamily,
70
bool
bLoadMask,
71
const
CFX_Size
& max_size_required);
72
73
// Returns whether to Continue() or not.
74
bool
Continue(
PauseIndicatorIface
* pPause,
75
CPDF_PageImageCache
* pPageImageCache);
76
77
RetainPtr
<
CFX_DIBBase
> DetachBitmap();
78
RetainPtr
<
CFX_DIBBase
> DetachMask();
79
80
private
:
81
void
ContinueGetCachedBitmap(
CPDF_PageImageCache
* pPageImageCache);
82
void
CalcSize();
83
bool
IsCacheValid(
const
CFX_Size
& max_size_required)
const
;
84
85
uint32_t m_dwTimeCount = 0;
86
uint32_t m_MatteColor = 0;
87
uint32_t m_dwCacheSize = 0;
88
RetainPtr
<CPDF_Image>
const
m_pImage;
89
RetainPtr
<
CFX_DIBBase
> m_pCurBitmap;
90
RetainPtr
<
CFX_DIBBase
> m_pCurMask;
91
RetainPtr
<
CFX_DIBBase
> m_pCachedBitmap;
92
RetainPtr
<
CFX_DIBBase
> m_pCachedMask;
93
bool
m_bCachedSetMaxSizeRequired =
false
;
94
};
95
96
void
ClearImageCacheEntry(
const
CPDF_Stream* pStream);
97
98
UnownedPtr
<CPDF_Page>
const
m_pPage;
99
std
::
map
<
RetainPtr
<
const
CPDF_Stream
>,
std
::
unique_ptr
<
Entry
>,
std
::
less
<>>
100
m_ImageCache
;
101
MaybeOwned<Entry> m_pCurImageCacheEntry;
102
uint32_t m_nTimeCount = 0;
103
uint32_t m_nCacheSize = 0;
104
bool
m_bCurFindCache =
false
;
105
};
106
107
#
endif
// CORE_FPDFAPI_PAGE_CPDF_PAGEIMAGECACHE_H_
DCHECK
#define DCHECK
Definition
check.h:33
CFX_DIBBase
Definition
cfx_dibbase.h:35
CPDF_Array::const_iterator
std::vector< RetainPtr< CPDF_Object > >::const_iterator const_iterator
Definition
cpdf_array.h:29
CPDF_ColorSpace
Definition
cpdf_colorspace.h:53
CPDF_ColorSpace::Family
Family
Definition
cpdf_colorspace.h:55
CPDF_DIB::LoadState
LoadState
Definition
cpdf_dib.h:43
CPDF_DIB::LoadState::kContinue
@ kContinue
Definition
cpdf_dib.h:43
CPDF_DIB::LoadState::kFail
@ kFail
Definition
cpdf_dib.h:43
CPDF_DIB::LoadState::kSuccess
@ kSuccess
Definition
cpdf_dib.h:43
CPDF_Dictionary::DictMap
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
Definition
cpdf_dictionary.h:31
CPDF_Document
Definition
cpdf_document.h:29
CPDF_Image::SetJpegImage
void SetJpegImage(RetainPtr< IFX_SeekableReadStream > pFile)
Definition
cpdf_image.cpp:139
CPDF_Image::Continue
bool Continue(PauseIndicatorIface *pPause)
Definition
cpdf_image.cpp:376
CPDF_Image::LoadDIBBase
RetainPtr< CFX_DIBBase > LoadDIBBase() const
Definition
cpdf_image.cpp:331
CPDF_Image::WillBeDestroyed
void WillBeDestroyed()
Definition
cpdf_image.cpp:323
CPDF_Image::ResetCache
void ResetCache(CPDF_Page *pPage)
Definition
cpdf_image.cpp:318
CPDF_Image::GetOC
RetainPtr< const CPDF_Dictionary > GetOC() const
Definition
cpdf_image.cpp:93
CPDF_Image::GetStream
RetainPtr< const CPDF_Stream > GetStream() const
Definition
cpdf_image.cpp:89
CPDF_Image::~CPDF_Image
~CPDF_Image() override
CPDF_Image::StartLoadDIBBase
bool StartLoadDIBBase(const CPDF_Dictionary *pFormResource, const CPDF_Dictionary *pPageResource, bool bStdCS, CPDF_ColorSpace::Family GroupFamily, bool bLoadMask, const CFX_Size &max_size_required)
Definition
cpdf_image.cpp:353
CPDF_Image::GetDict
RetainPtr< const CPDF_Dictionary > GetDict() const
Definition
cpdf_image.cpp:85
CPDF_Image::GetDocument
CPDF_Document * GetDocument() const
Definition
cpdf_image.h:42
CPDF_Image::SetJpegImageInline
void SetJpegImageInline(RetainPtr< IFX_SeekableReadStream > pFile)
Definition
cpdf_image.cpp:166
CPDF_Image::DetachBitmap
RetainPtr< CFX_DIBBase > DetachBitmap()
Definition
cpdf_image.cpp:345
CPDF_Image::IsValidJpegBitsPerComponent
static bool IsValidJpegBitsPerComponent(int32_t bpc)
Definition
cpdf_image.cpp:47
CPDF_Image::SetImage
void SetImage(const RetainPtr< CFX_DIBitmap > &pBitmap)
Definition
cpdf_image.cpp:185
CPDF_Image::CreateNewDIB
RetainPtr< CPDF_DIB > CreateNewDIB() const
Definition
cpdf_image.cpp:327
CPDF_Image::IsValidJpegComponent
static bool IsValidJpegComponent(int32_t comps)
Definition
cpdf_image.cpp:42
CPDF_Image::DetachMask
RetainPtr< CFX_DIBBase > DetachMask()
Definition
cpdf_image.cpp:349
CPDF_Image::ConvertStreamToIndirectObject
void ConvertStreamToIndirectObject()
Definition
cpdf_image.cpp:80
CPDF_PageImageCache
Definition
cpdf_pageimagecache.h:27
CPDF_PageImageCache::GetPage
CPDF_Page * GetPage() const
Definition
cpdf_pageimagecache.h:35
CPDF_PageImageCache::~CPDF_PageImageCache
~CPDF_PageImageCache()
CPDF_PageImageCache::ResetBitmapForImage
void ResetBitmapForImage(RetainPtr< CPDF_Image > pImage)
Definition
cpdf_pageimagecache.cpp:215
CPDF_PageImageCache::DetachCurBitmap
RetainPtr< CFX_DIBBase > DetachCurBitmap()
Definition
cpdf_pageimagecache.cpp:231
CPDF_PageImageCache::StartGetCachedBitmap
bool StartGetCachedBitmap(RetainPtr< CPDF_Image > pImage, const CPDF_Dictionary *pFormResources, const CPDF_Dictionary *pPageResources, bool bStdCS, CPDF_ColorSpace::Family eFamily, bool bLoadMask, const CFX_Size &max_size_required)
Definition
cpdf_pageimagecache.cpp:165
CPDF_PageImageCache::Continue
bool Continue(PauseIndicatorIface *pPause)
Definition
cpdf_pageimagecache.cpp:201
CPDF_PageImageCache::GetCurMatteColor
uint32_t GetCurMatteColor() const
Definition
cpdf_pageimagecache.cpp:227
CPDF_PageImageCache::CacheOptimization
void CacheOptimization(int32_t dwLimitCacheSize)
Definition
cpdf_pageimagecache.cpp:119
CPDF_PageImageCache::CPDF_PageImageCache
CPDF_PageImageCache(CPDF_Page *pPage)
Definition
cpdf_pageimagecache.cpp:115
CPDF_PageImageCache::DetachCurMask
RetainPtr< CFX_DIBBase > DetachCurMask()
Definition
cpdf_pageimagecache.cpp:235
CPDF_PageImageCache::GetTimeCount
uint32_t GetTimeCount() const
Definition
cpdf_pageimagecache.h:34
CPDF_Page::GetPageImageCache
CPDF_PageImageCache * GetPageImageCache()
Definition
cpdf_page.h:83
CPDF_String::DataType
DataType
Definition
cpdf_string.h:22
CPDF_String::DataType::kIsHex
@ kIsHex
Definition
cpdf_string.h:22
IFX_SeekableReadStream
Definition
fx_stream.h:52
PauseIndicatorIface
Definition
pauseindicator_iface.h:10
fxcrt::RetainPtr
Definition
retain_ptr.h:28
fxcrt::UnownedPtr
Definition
unowned_ptr.h:76
pdfium::CFDETextOutLargeBitmapTest
Definition
cfde_textout_unittest.cpp:117
UNSAFE_TODO
#define UNSAFE_TODO(...)
Definition
compiler_specific.h:102
CFX_Size
CFX_STemplate< int32_t > CFX_Size
Definition
fx_coordinates.h:114
FXARGB_B
#define FXARGB_B(argb)
Definition
fx_dib.h:199
FXARGB_G
#define FXARGB_G(argb)
Definition
fx_dib.h:198
FXARGB_R
#define FXARGB_R(argb)
Definition
fx_dib.h:197
FXDIB_Format
FXDIB_Format
Definition
fx_dib.h:21
FXDIB_Format::k1bppMask
@ k1bppMask
Definition
fx_dib.h:27
JpegModule
fxcodec::JpegModule JpegModule
Definition
jpegmodule.h:64
fxcrt
Definition
stl_util.h:17
pdfium::stream
Definition
stream_dict_common.cpp:7
pdfium::stream::kDecodeParms
const char kDecodeParms[]
Definition
stream_dict_common.cpp:16
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
CHECK
#define CHECK(cvref)
Definition
q23utility.cpp:15
FX_BGRA_STRUCT
Definition
fx_dib.h:84
fxcodec::JpegModule::ImageInfo
Definition
jpegmodule.h:32
fxcodec::JpegModule::ImageInfo::width
uint32_t width
Definition
jpegmodule.h:33
fxcodec::JpegModule::ImageInfo::bits_per_components
int bits_per_components
Definition
jpegmodule.h:36
fxcodec::JpegModule::ImageInfo::num_components
int num_components
Definition
jpegmodule.h:35
fxcodec::JpegModule::ImageInfo::color_transform
bool color_transform
Definition
jpegmodule.h:37
fxcodec::JpegModule::ImageInfo::height
uint32_t height
Definition
jpegmodule.h:34
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fpdfapi
page
cpdf_pageimagecache.h
Generated on
for Qt by
1.18.0