53 return SkToU8((
unsigned)mode);
72 fillMap.set(fillKey, ref);
89 state.insertColorComponentF(
"CA", strokeKey.
fAlpha);
90 state.insertColorComponentF(
"ca", strokeKey.
fAlpha);
95 state.insertBool(
"SA",
true);
98 sMap.set(strokeKey, ref);
108 static const char psInvert[] =
"{1 exch sub}";
113 dict->insertInt(
"FunctionType", 4);
121 SkPDFSMaskMode sMaskMode,
126 if (sMaskMode == kAlpha_SMaskMode) {
127 sMaskDict->insertName(
"S",
"Alpha");
128 }
else if (sMaskMode == kLuminosity_SMaskMode) {
129 sMaskDict->insertName(
"S",
"Luminosity");
131 sMaskDict->insertRef(
"G", sMask);
140 result.insertObject(
"SMask", std::move(sMaskDict));
@ kSrcOver
r = s + (1-sa)*d
@ kXor
r = s*(1-da) + d*(1-sa)
static int to_stroke_cap(uint8_t cap)
static SkPDFIndirectReference make_invert_function(SkPDFDocument *doc)
static uint8_t pdf_blend_mode(SkBlendMode mode)
static int to_stroke_join(uint8_t join)
static const char * as_pdf_blend_mode_name(SkBlendMode mode)
SkPDFIndirectReference SkPDFStreamOut(std::unique_ptr< SkPDFDict > dict, std::unique_ptr< SkStreamAsset > content, SkPDFDocument *doc, SkPDFSteamCompressionEnabled compress)
static std::unique_ptr< SkPDFDict > SkPDFMakeDict(const char *type=nullptr)
static std::unique_ptr< SkPDFArray > SkPDFMakeArray(Args... args)
constexpr uint8_t SkToU8(S x)
static sk_sp< SkData > MakeWithoutCopy(const void *data, size_t length)
static std::unique_ptr< SkMemoryStream > Make(sk_sp< SkData > data)
skia_private::THashMap< SkPDFStrokeGraphicState, SkPDFIndirectReference, SkPDFStrokeGraphicState::Hash > fStrokeGSMap
SkPDFIndirectReference emit(const SkPDFObject &, SkPDFIndirectReference)
skia_private::THashMap< SkPDFFillGraphicState, SkPDFIndirectReference, SkPDFFillGraphicState::Hash > fFillGSMap
SkPDFIndirectReference fInvertFunction
@ kButt_Cap
no stroke extension
@ kFill_Style
set to fill geometry
@ kMiter_Join
extends to miter limit
@ kBevel_Join
connects outside edges
SkPDFIndirectReference GetGraphicStateForPaint(SkPDFDocument *, const SkPaint &)
SkPDFIndirectReference GetSMaskGraphicState(SkPDFIndirectReference sMask, bool invert, SkPDFSMaskMode sMaskMode, SkPDFDocument *doc)
const char * BlendModeName(SkBlendMode)
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive mode