Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(223)

Side by Side Diff: gm/convexpolyeffect.cpp

Issue 1930623003: Clean up test drawContext usage (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix typo Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gm/constcolorprocessor.cpp ('k') | gm/imagefromyuvtextures.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 // This test only works with the GPU backend. 8 // This test only works with the GPU backend.
9 9
10 #include "gm.h" 10 #include "gm.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 // vertically/horizontally thin rects that don't cover pixel centers 146 // vertically/horizontally thin rects that don't cover pixel centers
147 fRects.addToTail(SkRect::MakeLTRB(5.55f, 0.5f, 5.75f, 24.5f)); 147 fRects.addToTail(SkRect::MakeLTRB(5.55f, 0.5f, 5.75f, 24.5f));
148 fRects.addToTail(SkRect::MakeLTRB(5.5f, .05f, 29.5f, .25f)); 148 fRects.addToTail(SkRect::MakeLTRB(5.5f, .05f, 29.5f, .25f));
149 // small in x and y 149 // small in x and y
150 fRects.addToTail(SkRect::MakeLTRB(5.05f, .55f, 5.45f, .85f)); 150 fRects.addToTail(SkRect::MakeLTRB(5.05f, .55f, 5.45f, .85f));
151 // inverted in x and y 151 // inverted in x and y
152 fRects.addToTail(SkRect::MakeLTRB(100.f, 50.5f, 5.f, 0.5f)); 152 fRects.addToTail(SkRect::MakeLTRB(100.f, 50.5f, 5.f, 0.5f));
153 } 153 }
154 154
155 void onDraw(SkCanvas* canvas) override { 155 void onDraw(SkCanvas* canvas) override {
156 GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget (); 156 GrDrawContext* drawContext = canvas->internal_private_accessTopLayerDraw Context();
157 if (nullptr == rt) { 157 if (!drawContext) {
158 skiagm::GM::DrawGpuOnlyMessage(canvas); 158 skiagm::GM::DrawGpuOnlyMessage(canvas);
159 return; 159 return;
160 } 160 }
161 GrContext* context = rt->getContext();
162 if (nullptr == context) {
163 return;
164 }
165 161
166 sk_sp<GrDrawContext> drawContext(context->drawContext(sk_ref_sp(rt)));
167 if (!drawContext) {
168 return;
169 }
170
171 SkScalar y = 0; 162 SkScalar y = 0;
172 static const SkScalar kDX = 12.f; 163 static const SkScalar kDX = 12.f;
173 for (PathList::Iter iter(fPaths, PathList::Iter::kHead_IterStart); 164 for (PathList::Iter iter(fPaths, PathList::Iter::kHead_IterStart);
174 iter.get(); 165 iter.get();
175 iter.next()) { 166 iter.next()) {
176 const SkPath* path = iter.get(); 167 const SkPath* path = iter.get();
177 SkScalar x = 0; 168 SkScalar x = 0;
178 169
179 for (int et = 0; et < kGrProcessorEdgeTypeCnt; ++et) { 170 for (int et = 0; et < kGrProcessorEdgeTypeCnt; ++et) {
180 const SkMatrix m = SkMatrix::MakeTrans(x, y); 171 const SkMatrix m = SkMatrix::MakeTrans(x, y);
181 SkPath p; 172 SkPath p;
182 path->transform(m, &p); 173 path->transform(m, &p);
183 174
184 GrPrimitiveEdgeType edgeType = (GrPrimitiveEdgeType) et; 175 GrPrimitiveEdgeType edgeType = (GrPrimitiveEdgeType) et;
185 SkAutoTUnref<GrFragmentProcessor> fp(GrConvexPolyEffect::Create( edgeType, p)); 176 SkAutoTUnref<GrFragmentProcessor> fp(GrConvexPolyEffect::Create( edgeType, p));
186 if (!fp) { 177 if (!fp) {
187 continue; 178 continue;
188 } 179 }
189 180
190 GrPipelineBuilder pipelineBuilder; 181 GrPipelineBuilder pipelineBuilder;
191 pipelineBuilder.setXPFactory( 182 pipelineBuilder.setXPFactory(
192 GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode))->unref (); 183 GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode))->unref ();
193 pipelineBuilder.addCoverageFragmentProcessor(fp); 184 pipelineBuilder.addCoverageFragmentProcessor(fp);
194 pipelineBuilder.setRenderTarget(rt); 185 pipelineBuilder.setRenderTarget(drawContext->accessRenderTarget( ));
195 186
196 SkAutoTUnref<GrDrawBatch> batch(new PolyBoundsBatch(p.getBounds( ), 0xff000000)); 187 SkAutoTUnref<GrDrawBatch> batch(new PolyBoundsBatch(p.getBounds( ), 0xff000000));
197 188
198 drawContext->drawContextPriv().testingOnly_drawBatch(pipelineBui lder, batch); 189 drawContext->drawContextPriv().testingOnly_drawBatch(pipelineBui lder, batch);
199 190
200 x += SkScalarCeilToScalar(path->getBounds().width() + kDX); 191 x += SkScalarCeilToScalar(path->getBounds().width() + kDX);
201 } 192 }
202 193
203 // Draw AA and non AA paths using normal API for reference. 194 // Draw AA and non AA paths using normal API for reference.
204 canvas->save(); 195 canvas->save();
(...skipping 20 matching lines...) Expand all
225 GrPrimitiveEdgeType edgeType = (GrPrimitiveEdgeType) et; 216 GrPrimitiveEdgeType edgeType = (GrPrimitiveEdgeType) et;
226 SkAutoTUnref<GrFragmentProcessor> fp(GrConvexPolyEffect::Create( edgeType, rect)); 217 SkAutoTUnref<GrFragmentProcessor> fp(GrConvexPolyEffect::Create( edgeType, rect));
227 if (!fp) { 218 if (!fp) {
228 continue; 219 continue;
229 } 220 }
230 221
231 GrPipelineBuilder pipelineBuilder; 222 GrPipelineBuilder pipelineBuilder;
232 pipelineBuilder.setXPFactory( 223 pipelineBuilder.setXPFactory(
233 GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode))->unref (); 224 GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode))->unref ();
234 pipelineBuilder.addCoverageFragmentProcessor(fp); 225 pipelineBuilder.addCoverageFragmentProcessor(fp);
235 pipelineBuilder.setRenderTarget(rt); 226 pipelineBuilder.setRenderTarget(drawContext->accessRenderTarget( ));
236 227
237 SkAutoTUnref<GrDrawBatch> batch(new PolyBoundsBatch(rect, 0xff00 0000)); 228 SkAutoTUnref<GrDrawBatch> batch(new PolyBoundsBatch(rect, 0xff00 0000));
238 229
239 drawContext->drawContextPriv().testingOnly_drawBatch(pipelineBui lder, batch); 230 drawContext->drawContextPriv().testingOnly_drawBatch(pipelineBui lder, batch);
240 231
241 x += SkScalarCeilToScalar(rect.width() + kDX); 232 x += SkScalarCeilToScalar(rect.width() + kDX);
242 } 233 }
243 234
244 // Draw rect without and with AA using normal API for reference 235 // Draw rect without and with AA using normal API for reference
245 canvas->save(); 236 canvas->save();
(...skipping 15 matching lines...) Expand all
261 PathList fPaths; 252 PathList fPaths;
262 RectList fRects; 253 RectList fRects;
263 254
264 typedef GM INHERITED; 255 typedef GM INHERITED;
265 }; 256 };
266 257
267 DEF_GM(return new ConvexPolyEffect;) 258 DEF_GM(return new ConvexPolyEffect;)
268 } 259 }
269 260
270 #endif 261 #endif
OLDNEW
« no previous file with comments | « gm/constcolorprocessor.cpp ('k') | gm/imagefromyuvtextures.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698