Upgrade GrRenderTask::makeClosed to take a GrRecordingContext
The tessellation atlas task will need a recording context in order to
record its ops during onMakeClosed.
Bug: b/188794626
Bug: chromium:928984
Change-Id: Ie8719a514899a5748c52ae78a6ecd997b1439ab7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/420879
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrRenderTask.cpp b/src/gpu/GrRenderTask.cpp
index eedb84e..1c15d66 100644
--- a/src/gpu/GrRenderTask.cpp
+++ b/src/gpu/GrRenderTask.cpp
@@ -66,13 +66,13 @@
}
#endif
-void GrRenderTask::makeClosed(const GrCaps& caps) {
+void GrRenderTask::makeClosed(GrRecordingContext* rContext) {
if (this->isClosed()) {
return;
}
SkIRect targetUpdateBounds;
- if (ExpectedOutcome::kTargetDirty == this->onMakeClosed(caps, &targetUpdateBounds)) {
+ if (ExpectedOutcome::kTargetDirty == this->onMakeClosed(rContext, &targetUpdateBounds)) {
GrSurfaceProxy* proxy = this->target(0);
if (proxy->requiresManualMSAAResolve()) {
SkASSERT(this->target(0)->asRenderTargetProxy());
@@ -86,7 +86,7 @@
if (fTextureResolveTask) {
this->addDependency(fTextureResolveTask);
- fTextureResolveTask->makeClosed(caps);
+ fTextureResolveTask->makeClosed(rContext);
fTextureResolveTask = nullptr;
}
@@ -152,7 +152,7 @@
// We are closing 'dependedOnTask' here bc the current contents of it are what 'this'
// renderTask depends on. We need a break in 'dependedOnTask' so that the usage of
// that state has a chance to execute.
- dependedOnTask->makeClosed(caps);
+ dependedOnTask->makeClosed(drawingMgr->getContext());
}
auto resolveFlags = GrSurfaceProxy::ResolveFlags::kNone;
@@ -275,14 +275,6 @@
}
#endif
-void GrRenderTask::closeThoseWhoDependOnMe(const GrCaps& caps) {
- for (int i = 0; i < fDependents.count(); ++i) {
- if (!fDependents[i]->isClosed()) {
- fDependents[i]->makeClosed(caps);
- }
- }
-}
-
bool GrRenderTask::isInstantiated() const {
for (const sk_sp<GrSurfaceProxy>& target : fTargets) {
GrSurfaceProxy* proxy = target.get();