Update mock render task & cluster test
Switch away from views, and add support for simulating
used-proxies. The latter will be used in an upcoming CL.
Bug: skia:10877
Change-Id: I7897516dc53c075a286cce8f31075d8cc93abccf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/360604
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/mock/GrMockRenderTask.h b/src/gpu/mock/GrMockRenderTask.h
index a276e19..8564bb6 100644
--- a/src/gpu/mock/GrMockRenderTask.h
+++ b/src/gpu/mock/GrMockRenderTask.h
@@ -17,8 +17,9 @@
this->setFlag(kDisowned_Flag);
}
- void addTarget(GrSurfaceProxyView view) { fTargets.push_back(view.detachProxy()); }
+ void addTarget(sk_sp<GrSurfaceProxy> proxy) { fTargets.push_back(std::move(proxy)); }
void addDependency(GrRenderTask* dep) { fDependencies.push_back(dep); }
+ void addUsed(sk_sp<GrSurfaceProxy> proxy) { fUsed.push_back(std::move(proxy)); }
// Overrides.
#ifdef SK_DEBUG
@@ -27,12 +28,22 @@
void handleInternalAllocationFailure() override {}
void gatherProxyIntervals(GrResourceAllocator*) const override {}
ExpectedOutcome onMakeClosed(const GrCaps&, SkIRect*) override { SkUNREACHABLE; }
- bool onIsUsed(GrSurfaceProxy*) const override { return false; }
+ bool onIsUsed(GrSurfaceProxy* proxy) const override {
+ for (const auto& entry : fUsed) {
+ if (entry.get() == proxy) {
+ return true;
+ }
+ }
+ return false;
+ }
bool onExecute(GrOpFlushState*) override { return true; }
#if GR_TEST_UTILS
const char* name() const final { return "Mock"; }
#endif
+
+private:
+ SkTArray<sk_sp<GrSurfaceProxy>> fUsed;
};
#endif
diff --git a/tests/GrRenderTaskClusterTest.cpp b/tests/GrRenderTaskClusterTest.cpp
index e4f9a37..e3ae384 100644
--- a/tests/GrRenderTaskClusterTest.cpp
+++ b/tests/GrRenderTaskClusterTest.cpp
@@ -13,11 +13,11 @@
typedef void (*CreateGraphPF)(SkTArray<sk_sp<GrMockRenderTask>>* graph,
SkTArray<sk_sp<GrMockRenderTask>>* expected);
-static void make_proxies(int count, SkTArray<GrSurfaceProxyView>* views) {
- views->reset(count);
+static void make_proxies(int count, SkTArray<sk_sp<GrSurfaceProxy>>* proxies) {
+ proxies->reset(count);
for (int i = 0; i < count; i++) {
auto name = SkStringPrintf("%c", 'A' + i);
- views->at(i) = GrSurfaceProxyView(sk_make_sp<GrMockSurfaceProxy>(std::move(name)));
+ proxies->at(i) = sk_make_sp<GrMockSurfaceProxy>(std::move(name));
}
}
@@ -34,7 +34,7 @@
*/
static void create_graph0(SkTArray<sk_sp<GrMockRenderTask>>* graph,
SkTArray<sk_sp<GrMockRenderTask>>* expected) {
- SkTArray<GrSurfaceProxyView> proxies;
+ SkTArray<sk_sp<GrSurfaceProxy>> proxies;
make_proxies(2, &proxies);
make_tasks(3, graph);
@@ -54,7 +54,7 @@
*/
static void create_graph1(SkTArray<sk_sp<GrMockRenderTask>>* graph,
SkTArray<sk_sp<GrMockRenderTask>>* expected) {
- SkTArray<GrSurfaceProxyView> proxies;
+ SkTArray<sk_sp<GrSurfaceProxy>> proxies;
make_proxies(3, &proxies);
make_tasks(5, graph);
@@ -78,7 +78,7 @@
*/
static void create_graph2(SkTArray<sk_sp<GrMockRenderTask>>* graph,
SkTArray<sk_sp<GrMockRenderTask>>* expected) {
- SkTArray<GrSurfaceProxyView> proxies;
+ SkTArray<sk_sp<GrSurfaceProxy>> proxies;
make_proxies(2, &proxies);
make_tasks(3, graph);