From 77505da16093695f717ad34ff100ec11ffb2835b Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 20 Jan 2017 09:11:37 -0500 Subject: [PATCH] Remove GrTestTarget Change-Id: I4d2e1aa54732ff75b44a197255035c0e04548219 Reviewed-on: https://skia-review.googlesource.com/7327 Commit-Queue: Robert Phillips Reviewed-by: Brian Salomon --- include/gpu/GrContext.h | 4 -- include/gpu/GrRenderTargetContext.h | 1 - tests/DFPathRendererTest.cpp | 33 +++++++------- tests/TessellatingPathRendererTests.cpp | 59 ++++++++++++------------- tools/gpu/GrTest.cpp | 17 ------- tools/gpu/GrTest.h | 18 -------- 6 files changed, 45 insertions(+), 87 deletions(-) diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h index 083a19ac6f..7e8d4e8ad7 100644 --- a/include/gpu/GrContext.h +++ b/include/gpu/GrContext.h @@ -36,7 +36,6 @@ class GrPipelineBuilder; class GrResourceEntry; class GrResourceCache; class GrResourceProvider; -class GrTestTarget; class GrTextBlobCache; class GrTextContext; class GrSamplerParams; @@ -341,9 +340,6 @@ public: const GrResourceProvider* resourceProvider() const { return fResourceProvider; } GrResourceCache* getResourceCache() { return fResourceCache; } - // Called by tests that draw directly to the context via GrRenderTargetContext - void getTestTarget(GrTestTarget*, sk_sp); - /** Reset GPU stats */ void resetGpuStats() const ; diff --git a/include/gpu/GrRenderTargetContext.h b/include/gpu/GrRenderTargetContext.h index e595a4f90f..aab105087f 100644 --- a/include/gpu/GrRenderTargetContext.h +++ b/include/gpu/GrRenderTargetContext.h @@ -391,7 +391,6 @@ private: friend class GrDrawingManager; // for ctor friend class GrRenderTargetContextPriv; - friend class GrTestTarget; // for access to getOpList friend class GrSWMaskHelper; // for access to addDrawOp // All the path renderers currently make their own ops diff --git a/tests/DFPathRendererTest.cpp b/tests/DFPathRendererTest.cpp index 7fb8c8a120..e4d87a2049 100644 --- a/tests/DFPathRendererTest.cpp +++ b/tests/DFPathRendererTest.cpp @@ -7,18 +7,19 @@ #include "Test.h" +#include "SkPath.h" + #if SK_SUPPORT_GPU #include "GrContext.h" -#include "GrTest.h" -#include "SkPath.h" #include "ops/GrAADistanceFieldPathRenderer.h" // This test case including path coords and matrix taken from crbug.com/627443. // Because of inaccuracies in large floating point values this causes the // the path renderer to attempt to add a path DF to its atlas that is larger // than the plot size which used to crash rather than fail gracefully. -static void test_far_from_origin(GrRenderTargetContext* renderTargetContext, GrPathRenderer* pr, - GrResourceProvider* rp) { +static void test_far_from_origin(GrResourceProvider* rp, + GrRenderTargetContext* renderTargetContext, + GrPathRenderer* pr) { SkPath path; path.lineTo(49.0255089839f, 0.473541f); // This extra line wasn't in the original bug but was added to fake out GrShape's special @@ -58,27 +59,25 @@ static void test_far_from_origin(GrRenderTargetContext* renderTargetContext, GrP } DEF_GPUTEST_FOR_ALL_GL_CONTEXTS(AADistanceFieldPathRenderer, reporter, ctxInfo) { + GrContext* ctx = ctxInfo.grContext(); // The DF PR only works with contexts that support derivatives - if (!ctxInfo.grContext()->caps()->shaderCaps()->shaderDerivativeSupport()) { + if (!ctx->caps()->shaderCaps()->shaderDerivativeSupport()) { return; } - sk_sp rtc(ctxInfo.grContext()->makeRenderTargetContext( - SkBackingFit::kApprox, - 800, 800, - kRGBA_8888_GrPixelConfig, - nullptr, - 0, - kTopLeft_GrSurfaceOrigin)); + sk_sp rtc(ctx->makeRenderTargetContext(SkBackingFit::kApprox, + 800, 800, + kRGBA_8888_GrPixelConfig, + nullptr, + 0, + kTopLeft_GrSurfaceOrigin)); if (!rtc) { return; } GrAADistanceFieldPathRenderer dfpr; - GrTestTarget tt; - ctxInfo.grContext()->getTestTarget(&tt, rtc); - GrResourceProvider* rp = tt.resourceProvider(); - test_far_from_origin(rtc.get(), &dfpr, rp); - ctxInfo.grContext()->flush(); + ctx->flush(); + test_far_from_origin(ctx->resourceProvider(), rtc.get(), &dfpr); + ctx->flush(); } #endif diff --git a/tests/TessellatingPathRendererTests.cpp b/tests/TessellatingPathRendererTests.cpp index b03db18713..90d2ba5859 100644 --- a/tests/TessellatingPathRendererTests.cpp +++ b/tests/TessellatingPathRendererTests.cpp @@ -5,12 +5,12 @@ * found in the LICENSE file. */ +#include "Test.h" + #include "SkPath.h" #if SK_SUPPORT_GPU #include "GrContext.h" -#include "GrTest.h" -#include "Test.h" #include "ops/GrTessellatingPathRenderer.h" /* @@ -249,7 +249,7 @@ static SkPath create_path_16() { return path; } -static void test_path(GrRenderTargetContext* renderTargetContext, GrResourceProvider* rp, +static void test_path(GrResourceProvider* rp, GrRenderTargetContext* renderTargetContext, const SkPath& path) { GrTessellatingPathRenderer tess; @@ -272,37 +272,36 @@ static void test_path(GrRenderTargetContext* renderTargetContext, GrResourceProv } DEF_GPUTEST_FOR_ALL_CONTEXTS(TessellatingPathRendererTests, reporter, ctxInfo) { - sk_sp rtc(ctxInfo.grContext()->makeRenderTargetContext( - SkBackingFit::kApprox, - 800, 800, - kRGBA_8888_GrPixelConfig, - nullptr, - 0, - kTopLeft_GrSurfaceOrigin)); + GrContext* ctx = ctxInfo.grContext(); + sk_sp rtc(ctx->makeRenderTargetContext(SkBackingFit::kApprox, + 800, 800, + kRGBA_8888_GrPixelConfig, + nullptr, + 0, + kTopLeft_GrSurfaceOrigin)); if (!rtc) { return; } - GrTestTarget tt; - ctxInfo.grContext()->getTestTarget(&tt, rtc); - GrResourceProvider* rp = tt.resourceProvider(); + GrResourceProvider* rp = ctx->resourceProvider(); - test_path(rtc.get(), rp, create_path_0()); - test_path(rtc.get(), rp, create_path_1()); - test_path(rtc.get(), rp, create_path_2()); - test_path(rtc.get(), rp, create_path_3()); - test_path(rtc.get(), rp, create_path_4()); - test_path(rtc.get(), rp, create_path_5()); - test_path(rtc.get(), rp, create_path_6()); - test_path(rtc.get(), rp, create_path_7()); - test_path(rtc.get(), rp, create_path_8()); - test_path(rtc.get(), rp, create_path_9()); - test_path(rtc.get(), rp, create_path_10()); - test_path(rtc.get(), rp, create_path_11()); - test_path(rtc.get(), rp, create_path_12()); - test_path(rtc.get(), rp, create_path_13()); - test_path(rtc.get(), rp, create_path_14()); - test_path(rtc.get(), rp, create_path_15()); - test_path(rtc.get(), rp, create_path_16()); + ctx->flush(); + test_path(rp, rtc.get(), create_path_0()); + test_path(rp, rtc.get(), create_path_1()); + test_path(rp, rtc.get(), create_path_2()); + test_path(rp, rtc.get(), create_path_3()); + test_path(rp, rtc.get(), create_path_4()); + test_path(rp, rtc.get(), create_path_5()); + test_path(rp, rtc.get(), create_path_6()); + test_path(rp, rtc.get(), create_path_7()); + test_path(rp, rtc.get(), create_path_8()); + test_path(rp, rtc.get(), create_path_9()); + test_path(rp, rtc.get(), create_path_10()); + test_path(rp, rtc.get(), create_path_11()); + test_path(rp, rtc.get(), create_path_12()); + test_path(rp, rtc.get(), create_path_13()); + test_path(rp, rtc.get(), create_path_14()); + test_path(rp, rtc.get(), create_path_15()); + test_path(rp, rtc.get(), create_path_16()); } #endif diff --git a/tools/gpu/GrTest.cpp b/tools/gpu/GrTest.cpp index cc34f21682..975d1ecf94 100644 --- a/tools/gpu/GrTest.cpp +++ b/tools/gpu/GrTest.cpp @@ -55,13 +55,6 @@ void SetupAlwaysEvictAtlas(GrContext* context) { } }; -void GrTestTarget::init(GrContext* ctx, sk_sp renderTargetContext) { - SkASSERT(!fContext); - - fContext.reset(SkRef(ctx)); - fRenderTargetContext = renderTargetContext; -} - bool GrSurfaceProxy::isWrapped_ForTesting() const { return SkToBool(fTarget); } @@ -70,16 +63,6 @@ bool GrRenderTargetContext::isWrapped_ForTesting() const { return fRenderTargetProxy->isWrapped_ForTesting(); } -void GrContext::getTestTarget(GrTestTarget* tar, sk_sp renderTargetContext) { - this->flush(); - SkASSERT(renderTargetContext); - // We could create a proxy GrOpList that passes through to fGpu until ~GrTextTarget() and - // then disconnects. This would help prevent test writers from mixing using the returned - // GrOpList and regular drawing. We could also assert or fail in GrContext drawing methods - // until ~GrTestTarget(). - tar->init(this, std::move(renderTargetContext)); -} - void GrContext::setTextBlobCacheLimit_ForTesting(size_t bytes) { fTextBlobCache->setBudget(bytes); } diff --git a/tools/gpu/GrTest.h b/tools/gpu/GrTest.h index 0ef2140389..db4c4515b3 100644 --- a/tools/gpu/GrTest.h +++ b/tools/gpu/GrTest.h @@ -9,7 +9,6 @@ #define GrTest_DEFINED #include "GrContext.h" -#include "GrRenderTargetContext.h" namespace GrTest { /** @@ -19,21 +18,4 @@ namespace GrTest { void SetupAlwaysEvictAtlas(GrContext*); }; -/** TODO Please do not use this if you can avoid it. We are in the process of deleting it. - Allows a test to temporarily draw to a GrOpList owned by a GrContext. Tests that use this - should be careful not to mix using the GrOpList directly and drawing via SkCanvas or - GrContext. In the future this object may provide some guards to prevent this. */ -class GrTestTarget { -public: - GrTestTarget() {} - - void init(GrContext*, sk_sp); - - GrResourceProvider* resourceProvider() { return fContext->resourceProvider(); } - -private: - sk_sp fContext; - sk_sp fRenderTargetContext; -}; - #endif