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_patterncs.cpp
Go to the documentation of this file.
1
// Copyright 2014 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
#
include
"core/fpdfapi/page/cpdf_patterncs.h"
8
9
#
include
<
optional
>
10
11
#
include
"core/fpdfapi/page/cpdf_docpagedata.h"
12
#
include
"core/fpdfapi/parser/cpdf_array.h"
13
#
include
"core/fpdfapi/parser/cpdf_document.h"
14
#
include
"core/fxcrt/notreached.h"
15
16
CPDF_PatternCS::CPDF_PatternCS() :
CPDF_BasedCS
(
Family
::
kPattern
)
{}
17
18
CPDF_PatternCS::~
CPDF_PatternCS
() =
default
;
19
20
void
CPDF_PatternCS::
InitializeStockPattern
() {
21
SetComponentsForStockCS
(1);
22
}
23
24
uint32_t CPDF_PatternCS::
v_Load
(
CPDF_Document
* pDoc,
25
const
CPDF_Array
* pArray,
26
std::set<
const
CPDF_Object*>* pVisited) {
27
RetainPtr
<
const
CPDF_Object
> pBaseCS = pArray->GetDirectObjectAt(1);
28
if
(
HasSameArray
(
pBaseCS.Get()
)
)
29
return
0;
30
31
auto
* pDocPageData = CPDF_DocPageData
::
FromDocument
(
pDoc
)
;
32
m_pBaseCS =
33
pDocPageData->GetColorSpaceGuarded(pBaseCS.Get(),
nullptr
, pVisited);
34
if
(!m_pBaseCS)
35
return
1;
36
37
if
(m_pBaseCS->GetFamily() == Family::kPattern)
38
return
0;
39
40
if
(m_pBaseCS->ComponentCount() > kMaxPatternColorComps) {
41
return
0;
42
}
43
44
return
m_pBaseCS->ComponentCount() + 1;
45
}
46
47
std
::optional<
FX_RGB_STRUCT
<
float
>> CPDF_PatternCS::
GetRGB
(
48
pdfium::span<
const
float
> pBuf)
const
{
49
NOTREACHED_NORETURN
();
50
}
51
52
const
CPDF_PatternCS* CPDF_PatternCS::
AsPatternCS
()
const
{
53
return
this
;
54
}
55
56
std
::optional<
FX_RGB_STRUCT
<
float
>> CPDF_PatternCS::
GetPatternRGB
(
57
const
PatternValue
& value)
const
{
58
if
(!m_pBaseCS) {
59
return
std
::nullopt;
60
}
61
62
return
m_pBaseCS->GetRGB(value.GetComps());
63
}
CPDF_Array::const_iterator
std::vector< RetainPtr< CPDF_Object > >::const_iterator const_iterator
Definition
cpdf_array.h:29
CPDF_BasedCS
Definition
cpdf_basedcs.h:16
CPDF_BasedCS::CPDF_BasedCS
CPDF_BasedCS(Family family)
Definition
cpdf_basedcs.cpp:9
CPDF_ColorSpace::Family
Family
Definition
cpdf_colorspace.h:55
CPDF_ColorSpace::Family::kPattern
@ kPattern
Definition
cpdf_colorspace.h:67
CPDF_ColorSpace::HasSameArray
bool HasSameArray(const CPDF_Object *pObj) const
Definition
cpdf_colorspace.h:147
CPDF_ColorSpace::SetComponentsForStockCS
void SetComponentsForStockCS(uint32_t nComponents)
Definition
cpdf_colorspace.cpp:667
CPDF_DocPageData::FromDocument
static CPDF_DocPageData * FromDocument(const CPDF_Document *pDoc)
Definition
cpdf_docpagedata.cpp:166
CPDF_Document
Definition
cpdf_document.h:29
CPDF_Object
Definition
cpdf_object.h:50
CPDF_PatternCS::v_Load
uint32_t v_Load(CPDF_Document *pDoc, const CPDF_Array *pArray, std::set< const CPDF_Object * > *pVisited) override
Definition
cpdf_patterncs.cpp:24
CPDF_PatternCS::~CPDF_PatternCS
~CPDF_PatternCS() override
CPDF_PatternCS::GetPatternRGB
std::optional< FX_RGB_STRUCT< float > > GetPatternRGB(const PatternValue &value) const
Definition
cpdf_patterncs.cpp:56
CPDF_PatternCS::InitializeStockPattern
void InitializeStockPattern()
Definition
cpdf_patterncs.cpp:20
CPDF_PatternCS::GetRGB
std::optional< FX_RGB_STRUCT< float > > GetRGB(pdfium::span< const float > pBuf) const override
Definition
cpdf_patterncs.cpp:47
CPDF_PatternCS::AsPatternCS
const CPDF_PatternCS * AsPatternCS() const override
Definition
cpdf_patterncs.cpp:52
PatternValue
Definition
cpdf_colorspace.h:35
fxcrt::RetainPtr
Definition
retain_ptr.h:28
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
NOTREACHED_NORETURN
#define NOTREACHED_NORETURN()
Definition
notreached.h:22
FX_RGB_STRUCT
Definition
fx_dib.h:46
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fpdfapi
page
cpdf_patterncs.cpp
Generated on
for Qt by
1.18.0