aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/ClearTest.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-04-28 06:21:55 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-28 06:21:55 -0700
commitaa19a5fbc58e372df11443c90a25f02a04ecef52 (patch)
tree4c6f03988d11d06477e9cedae7fda5d44dfcc650 /tests/ClearTest.cpp
parentb8498825b54718cdd90c30c39323cfc433695f23 (diff)
Revert of Refactor drawContext/RenderTarget creation (patchset #8 id:140001 of https://codereview.chromium.org/1914883002/ )
Reason for revert: Experimental revert to see if this is blocking the DEPS roll. Original issue's description: > Refactor drawContext/RenderTarget creation > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1914883002 > > Committed: https://skia.googlesource.com/skia/+/2f1c42e8448bbbadeb3df1c626faa90aa33f8907 TBR=bsalomon@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1929833004
Diffstat (limited to 'tests/ClearTest.cpp')
-rw-r--r--tests/ClearTest.cpp40
1 files changed, 27 insertions, 13 deletions
diff --git a/tests/ClearTest.cpp b/tests/ClearTest.cpp
index 7a533ba19c..1065d940ba 100644
--- a/tests/ClearTest.cpp
+++ b/tests/ClearTest.cpp
@@ -37,18 +37,31 @@ static bool check_rect(GrDrawContext* dc, const SkIRect& rect, uint32_t expected
return true;
}
-static bool reset_dc(sk_sp<GrDrawContext>* dc, GrContext* context, int w, int h) {
+// We only really need the DC, but currently the DC doesn't own the RT so we also ref it, but that
+// could be dropped when DC is a proper owner of its RT.
+static bool reset_dc(sk_sp<GrDrawContext>* dc, SkAutoTUnref<GrSurface>* rtKeepAlive,
+ GrContext* context, int w, int h) {
SkDEBUGCODE(uint32_t oldID = 0;)
if (*dc) {
SkDEBUGCODE(oldID = (*dc)->accessRenderTarget()->getUniqueID();)
+ rtKeepAlive->reset(nullptr);
dc->reset(nullptr);
}
context->freeGpuResources();
- *dc = context->newDrawContext(GrContext::kTight_BackingFit, w, h, kRGBA_8888_GrPixelConfig);
-
- SkASSERT((*dc)->accessRenderTarget()->getUniqueID() != oldID);
+ GrTextureDesc desc;
+ desc.fWidth = w;
+ desc.fHeight = h;
+ desc.fConfig = kRGBA_8888_GrPixelConfig;
+ desc.fFlags = kRenderTarget_GrSurfaceFlag;
+ rtKeepAlive->reset(context->textureProvider()->createTexture(desc, SkBudgeted::kYes));
+ if (!(*rtKeepAlive)) {
+ return false;
+ }
+ GrRenderTarget* rt = (*rtKeepAlive)->asRenderTarget();
+ SkASSERT(rt->getUniqueID() != oldID);
+ *dc = context->drawContext(sk_ref_sp(rt));
return *dc != nullptr;
}
@@ -59,6 +72,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
SkIRect fullRect = SkIRect::MakeWH(kW, kH);
sk_sp<GrDrawContext> drawContext;
+ SkAutoTUnref<GrSurface> rtKeepAlive;
// A rectangle that is inset by one on all sides and the 1-pixel wide rectangles that surround
// it.
@@ -82,7 +96,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
static const GrColor kColor1 = 0xABCDEF01;
static const GrColor kColor2 = ~kColor1;
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}
@@ -93,7 +107,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
failX, failY);
}
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}
@@ -105,7 +119,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
failX, failY);
}
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}
@@ -117,7 +131,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
failX, failY);
}
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}
@@ -129,7 +143,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
failX, failY);
}
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}
@@ -141,7 +155,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
failX, failY);
}
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}
@@ -160,7 +174,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
failX, failY);
}
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}
@@ -172,7 +186,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
failX, failY);
}
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}
@@ -200,7 +214,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(ClearBatch, reporter, ctxInfo) {
failX, failY);
}
- if (!reset_dc(&drawContext, context, kW, kH)) {
+ if (!reset_dc(&drawContext, &rtKeepAlive, context, kW, kH)) {
ERRORF(reporter, "Could not create draw context.");
return;
}