Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
src
pdf
SkPDFGraphicState.h
Go to the documentation of this file.
1
/*
2
* Copyright 2010 The Android Open Source Project
3
*
4
* Use of this source code is governed by a BSD-style license that can be
5
* found in the LICENSE file.
6
*/
7
8
9
#ifndef SkPDFGraphicState_DEFINED
10
#define SkPDFGraphicState_DEFINED
11
12
#include "
include/private/base/SkMacros.h
"
13
#include "
src/pdf/SkPDFTypes.h
"
14
15
class
SkPaint
;
16
17
18
/** \class SkPDFGraphicState
19
SkPaint objects roughly correspond to graphic state dictionaries that can
20
be installed. So that a given dictionary is only output to the pdf file
21
once, we want to canonicalize them.
22
*/
23
namespace
SkPDFGraphicState
{
24
enum
SkPDFSMaskMode
{
25
kAlpha_SMaskMode
,
26
kLuminosity_SMaskMode
27
};
28
29
/** Get the graphic state for the passed SkPaint.
30
*/
31
SkPDFIndirectReference
GetGraphicStateForPaint
(
SkPDFDocument
*,
const
SkPaint
&);
32
33
/** Make a graphic state that only sets the passed soft mask.
34
* @param sMask The form xobject to use as a soft mask.
35
* @param invert Indicates if the alpha of the sMask should be inverted.
36
* @param sMaskMode Whether to use alpha or luminosity for the sMask.
37
*
38
* These are not de-duped.
39
*/
40
SkPDFIndirectReference
GetSMaskGraphicState
(
SkPDFIndirectReference
sMask,
41
bool
invert
,
42
SkPDFSMaskMode
sMaskMode,
43
SkPDFDocument
* doc);
44
}
// namespace SkPDFGraphicState
45
46
SK_BEGIN_REQUIRE_DENSE
47
struct
SkPDFStrokeGraphicState
{
48
SkScalar
fStrokeWidth
;
49
SkScalar
fStrokeMiter
;
50
SkScalar
fAlpha
;
51
uint8_t
fStrokeCap
;
// SkPaint::Cap
52
uint8_t
fStrokeJoin
;
// SkPaint::Join
53
uint8_t
fBlendMode
;
// SkBlendMode
54
uint8_t
fPADDING
= 0;
55
bool
operator==
(
const
SkPDFStrokeGraphicState
& o)
const
{
return
!memcmp(
this
, &o,
sizeof
(o)); }
56
bool
operator!=
(
const
SkPDFStrokeGraphicState
& o)
const
{
return
!(*
this
== o); }
57
58
using
Hash
=
SkForceDirectHash<SkPDFStrokeGraphicState>
;
59
};
60
SK_END_REQUIRE_DENSE
61
62
SK_BEGIN_REQUIRE_DENSE
63
struct
SkPDFFillGraphicState
{
64
SkScalar
fAlpha
;
65
uint8_t
fBlendMode
;
66
uint8_t
fPADDING
[3] = {0, 0, 0};
67
bool
operator==
(
const
SkPDFFillGraphicState
& o)
const
{
return
!memcmp(
this
, &o,
sizeof
(o)); }
68
bool
operator!=
(
const
SkPDFFillGraphicState
& o)
const
{
return
!(*
this
== o); }
69
70
using
Hash
=
SkForceDirectHash<SkPDFFillGraphicState>
;
71
};
72
SK_END_REQUIRE_DENSE
73
74
#endif
SkMacros.h
SK_BEGIN_REQUIRE_DENSE
#define SK_BEGIN_REQUIRE_DENSE
Definition
SkMacros.h:37
SK_END_REQUIRE_DENSE
#define SK_END_REQUIRE_DENSE
Definition
SkMacros.h:38
SkPDFTypes.h
SkPDFDocument
Definition
SkPDFDocumentPriv.h:81
SkPDFGraphicState::SkPDFSMaskMode
SkPDFSMaskMode
Definition
SkPDFGraphicState.h:24
SkPDFGraphicState::kLuminosity_SMaskMode
@ kLuminosity_SMaskMode
Definition
SkPDFGraphicState.h:26
SkPDFGraphicState::kAlpha_SMaskMode
@ kAlpha_SMaskMode
Definition
SkPDFGraphicState.h:25
SkPaint
Definition
SkPaint.h:44
SkScalar
float SkScalar
Definition
extension.cpp:12
invert
gboolean invert
Definition
fl_accessible_node.cc:12
SkPDFGraphicState
Definition
SkPDFGraphicState.h:23
SkPDFGraphicState::GetGraphicStateForPaint
SkPDFIndirectReference GetGraphicStateForPaint(SkPDFDocument *, const SkPaint &)
SkPDFGraphicState::GetSMaskGraphicState
SkPDFIndirectReference GetSMaskGraphicState(SkPDFIndirectReference sMask, bool invert, SkPDFSMaskMode sMaskMode, SkPDFDocument *doc)
SkForceDirectHash
Definition
SkChecksum.h:112
SkPDFFillGraphicState
Definition
SkPDFGraphicState.h:63
SkPDFFillGraphicState::fAlpha
SkScalar fAlpha
Definition
SkPDFGraphicState.h:64
SkPDFFillGraphicState::fBlendMode
uint8_t fBlendMode
Definition
SkPDFGraphicState.h:65
SkPDFFillGraphicState::operator!=
bool operator!=(const SkPDFFillGraphicState &o) const
Definition
SkPDFGraphicState.h:68
SkPDFFillGraphicState::fPADDING
uint8_t fPADDING[3]
Definition
SkPDFGraphicState.h:66
SkPDFFillGraphicState::operator==
bool operator==(const SkPDFFillGraphicState &o) const
Definition
SkPDFGraphicState.h:67
SkPDFIndirectReference
Definition
SkPDFTypes.h:36
SkPDFStrokeGraphicState
Definition
SkPDFGraphicState.h:47
SkPDFStrokeGraphicState::fStrokeWidth
SkScalar fStrokeWidth
Definition
SkPDFGraphicState.h:48
SkPDFStrokeGraphicState::fStrokeJoin
uint8_t fStrokeJoin
Definition
SkPDFGraphicState.h:52
SkPDFStrokeGraphicState::operator!=
bool operator!=(const SkPDFStrokeGraphicState &o) const
Definition
SkPDFGraphicState.h:56
SkPDFStrokeGraphicState::operator==
bool operator==(const SkPDFStrokeGraphicState &o) const
Definition
SkPDFGraphicState.h:55
SkPDFStrokeGraphicState::fPADDING
uint8_t fPADDING
Definition
SkPDFGraphicState.h:54
SkPDFStrokeGraphicState::fStrokeCap
uint8_t fStrokeCap
Definition
SkPDFGraphicState.h:51
SkPDFStrokeGraphicState::fBlendMode
uint8_t fBlendMode
Definition
SkPDFGraphicState.h:53
SkPDFStrokeGraphicState::fAlpha
SkScalar fAlpha
Definition
SkPDFGraphicState.h:50
SkPDFStrokeGraphicState::fStrokeMiter
SkScalar fStrokeMiter
Definition
SkPDFGraphicState.h:49
Generated on Fri Apr 26 2024 06:17:24 for Flutter Engine by
1.9.8