66 {
67
69 SkASSERT(!fDynamicAtlas->isInstantiated());
70
72
73
74 this->
target(0)->priv().setLazyDimensions(fDynamicAtlas->drawBounds());
75 this->
target(0)->asRenderTargetProxy()->setNeedsStencil();
77
78
82
85 0x0000,
87 0xffff,
90 0xffff>());
91
93 } else {
96 }
97
98
99 for (const auto* pathList : {&fWindingPathList, &fEvenOddPathList}) {
100 if (pathList->pathCount() > 0) {
101 auto op = GrOp::Make<PathStencilCoverOp>(
102 rContext,
103 pathList->pathDrawList(),
104 pathList->totalCombinedPathVerbCnt(),
105 pathList->pathCount(),
109 drawRect);
110 this->addAtlasDrawOp(std::move(op), caps);
111 }
112 }
113
114
119 0x0000,
121 0xffff,
124 0xffff>());
125
126
127
128 stencil = &kTestStencil;
129 } else {
132 0x0000,
134 0xffff,
137 0xffff>());
138
139
140
143 }
145
147
148
149
151}
constexpr SkPMColor4f SK_PMColor4fWHITE
constexpr SkPMColor4f SK_PMColor4fTRANSPARENT
bool discardStencilValuesAfterRenderPass() const
bool performColorClearsAsDraws() const
bool performStencilClearsAsDraws() const
void setColorLoadOp(GrLoadOp op, std::array< float, 4 > color={0, 0, 0, 0})
void setInitialStencilContent(StencilContent initialContent)
ExpectedOutcome onMakeClosed(GrRecordingContext *, SkIRect *targetUpdateBounds) override
static constexpr GrUserStencilSettings kTestAndResetStencil(GrUserStencilSettings::StaticInit< 0x0000, GrUserStencilTest::kLessIfInClip, 0x0001, GrUserStencilOp::kZero, GrUserStencilOp::kReplace, 0xffff >())
static constexpr Init< Ref, Test, TestMask, PassOp, FailOp, WriteMask > StaticInit()
void outset(float dx, float dy)