74 fSampledProxies.push_back(proxy);
105 int numClips()
const override {
return fNumClips; }
109#if defined(GR_TEST_UTILS)
112 bool printDependencies,
113 bool close)
const override;
114 const char*
name() const final {
return "Ops"; }
115 int numOpChains()
const {
return fOpChains.
size(); }
116 const GrOp* getChain(
int index)
const {
return fOpChains[index].head(); }
137 fInitialStencilContent = initialContent;
146 bool isColorNoOp()
const {
156 void setMustPreserveStencil() { fMustPreserveStencil =
true; }
161 void setCannotMergeBackward() { fCannotMergeBackward =
true; }
171 OpChain(
const OpChain&) =
delete;
172 OpChain& operator=(
const OpChain&) =
delete;
173 OpChain(OpChain&&) =
default;
174 OpChain& operator=(OpChain&&) =
default;
178 GrOp*
head()
const {
return fList.head(); }
181 const GrDstProxyView& dstProxyView()
const {
return fDstProxyView; }
199 bool shouldExecute()
const {
214 GrOp*
head()
const {
return fHead.get(); }
215 GrOp*
tail()
const {
return fTail; }
222 void validate()
const;
228 GrOp* fTail{
nullptr};
234 void validate()
const;
253 void onMakeSkippable()
override;
259 void forwardCombine(
const GrCaps&);
264 friend class ::OpsTaskTestingAccess;
274 bool fUsesMSAASurface;
279 std::array<float, 4> fLoadClearColor = {0, 0, 0, 0};
281 bool fMustPreserveStencil =
false;
282 bool fCannotMergeBackward =
false;
286 int fLastClipNumAnalyticElements;
std::function< void(GrSurfaceProxy *, skgpu::Mipmapped)> GrVisitProxyFunc
SkIDChangeListener::List List
@ kYes
Do pre-clip the geometry before applying the (perspective) matrix.
@ kNo
Don't pre-clip the geometry before applying the (perspective) matrix.
static constexpr bool SkToBool(const T &x)
static constexpr uint32_t SK_InvalidUniqueID
static void dump(const float m[20], SkYUVColorSpace cs, bool rgb2yuv)
std::unique_ptr< GrOp > Owner
SkDEBUGCODE(~GrRenderTask() override;) void makeClosed(GrRecordingContext *)
virtual GrTextureProxy * asTextureProxy()
void onPrepare(GrOpFlushState *flushState) override
OpsTask(GrDrawingManager *, GrSurfaceProxyView, GrAuditTrail *, sk_sp< GrArenas >)
void recordOp(GrOp::Owner, bool usesMSAA, GrProcessorSet::Analysis, GrAppliedClip *, const GrDstProxyView *, const GrCaps &)
void setColorLoadOp(GrLoadOp op, std::array< float, 4 > color={0, 0, 0, 0})
bool canMerge(const OpsTask *) const
int mergeFrom(SkSpan< const sk_sp< GrRenderTask > > tasks)
bool resetForFullscreenClear(CanDiscardPreviousOps)
bool onExecute(GrOpFlushState *flushState) override
void onPrePrepare(GrRecordingContext *) override
void endFlush(GrDrawingManager *) override
void setInitialStencilContent(StencilContent initialContent)
void addOp(GrDrawingManager *, GrOp::Owner, GrTextureResolveManager, const GrCaps &)
ExpectedOutcome onMakeClosed(GrRecordingContext *, SkIRect *targetUpdateBounds) override
bool usesMSAASurface() const
void addDrawOp(GrDrawingManager *, GrOp::Owner, bool usesMSAA, const GrProcessorSet::Analysis &, GrAppliedClip &&, const GrDstProxyView &, GrTextureResolveManager, const GrCaps &)
GrXferBarrierFlags renderPassXferBarriers() const
OpsTask * asOpsTask() override
void addSampledTexture(GrSurfaceProxy *proxy)
EMSCRIPTEN_KEEPALIVE void empty()
Optional< SkRect > bounds
DEF_SWITCHES_START aot vmservice shared library name
static constexpr SkIRect MakeEmpty()
static constexpr SkRect MakeEmpty()