aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrOpList.cpp
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2017-08-22 15:01:32 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-08-22 20:50:08 +0000
commit407b34235750d95dfc13260ff434d6be29eab264 (patch)
treee84b3ca10d0be1efa75e0c8597373662c83d6035 /src/gpu/GrOpList.cpp
parent223ec293ef3cd02bf2a2a8942d55e2490ee16d66 (diff)
Add GrPrepareCallback, always run at the start of flush
This is like an op, but only has one virtual, and always runs before any ops prepare. To be used in threaded software mask rendering (to schedule ASAP uploads). Bug: skia: Change-Id: I647482e2472d7321f3685e5bdbe49e10ac59c0b1 Reviewed-on: https://skia-review.googlesource.com/37160 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/gpu/GrOpList.cpp')
-rw-r--r--src/gpu/GrOpList.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gpu/GrOpList.cpp b/src/gpu/GrOpList.cpp
index 5a9a1bdad8..c87d520aec 100644
--- a/src/gpu/GrOpList.cpp
+++ b/src/gpu/GrOpList.cpp
@@ -54,9 +54,18 @@ void GrOpList::reset() {
}
fTarget.reset();
+ fPrepareCallbacks.reset();
fAuditTrail = nullptr;
}
+void GrOpList::prepare(GrOpFlushState* flushState) {
+ for (int i = 0; i < fPrepareCallbacks.count(); ++i) {
+ (*fPrepareCallbacks[i])(flushState);
+ }
+
+ this->onPrepare(flushState);
+}
+
// Add a GrOpList-based dependency
void GrOpList::addDependency(GrOpList* dependedOn) {
SkASSERT(!dependedOn->dependsOn(this)); // loops are bad