OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 // This test only works with the GPU backend. | 9 // This test only works with the GPU backend. |
10 | 10 |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 // vertically/horizontally thin rects that don't cover pixel centers | 140 // vertically/horizontally thin rects that don't cover pixel centers |
141 fRects.addToTail(SkRect::MakeLTRB(5.55f, 0.5f, 5.75f, 24.5f)); | 141 fRects.addToTail(SkRect::MakeLTRB(5.55f, 0.5f, 5.75f, 24.5f)); |
142 fRects.addToTail(SkRect::MakeLTRB(5.5f, .05f, 29.5f, .25f)); | 142 fRects.addToTail(SkRect::MakeLTRB(5.5f, .05f, 29.5f, .25f)); |
143 // small in x and y | 143 // small in x and y |
144 fRects.addToTail(SkRect::MakeLTRB(5.05f, .55f, 5.45f, .85f)); | 144 fRects.addToTail(SkRect::MakeLTRB(5.05f, .55f, 5.45f, .85f)); |
145 // inverted in x and y | 145 // inverted in x and y |
146 fRects.addToTail(SkRect::MakeLTRB(100.f, 50.5f, 5.f, 0.5f)); | 146 fRects.addToTail(SkRect::MakeLTRB(100.f, 50.5f, 5.f, 0.5f)); |
147 } | 147 } |
148 | 148 |
149 void onDraw(SkCanvas* canvas) override { | 149 void onDraw(SkCanvas* canvas) override { |
150 using namespace GrDefaultGeoProcFactory; | |
151 GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget
(); | 150 GrRenderTarget* rt = canvas->internal_private_accessTopLayerRenderTarget
(); |
152 if (NULL == rt) { | 151 if (NULL == rt) { |
153 this->drawGpuOnlyMessage(canvas); | 152 this->drawGpuOnlyMessage(canvas); |
154 return; | 153 return; |
155 } | 154 } |
156 GrContext* context = rt->getContext(); | 155 GrContext* context = rt->getContext(); |
157 if (NULL == context) { | 156 if (NULL == context) { |
158 return; | 157 return; |
159 } | 158 } |
160 | 159 |
161 Color color(0xff000000); | 160 static const GrColor color = 0xff000000; |
162 Coverage coverage(Coverage::kSolid_Type); | |
163 LocalCoords localCoords(LocalCoords::kUnused_Type); | |
164 SkAutoTUnref<const GrGeometryProcessor> gp( | 161 SkAutoTUnref<const GrGeometryProcessor> gp( |
165 GrDefaultGeoProcFactory::Create(color, coverage, localCoords, Sk
Matrix::I())); | 162 GrDefaultGeoProcFactory::Create(GrDefaultGeoProcFactory::kPositi
on_GPType, color, |
| 163 false, false)); |
166 | 164 |
167 SkScalar y = 0; | 165 SkScalar y = 0; |
168 for (SkTLList<SkPath>::Iter iter(fPaths, SkTLList<SkPath>::Iter::kHead_I
terStart); | 166 for (SkTLList<SkPath>::Iter iter(fPaths, SkTLList<SkPath>::Iter::kHead_I
terStart); |
169 iter.get(); | 167 iter.get(); |
170 iter.next()) { | 168 iter.next()) { |
171 const SkPath* path = iter.get(); | 169 const SkPath* path = iter.get(); |
172 SkScalar x = 0; | 170 SkScalar x = 0; |
173 | 171 |
174 for (int et = 0; et < kGrProcessorEdgeTypeCnt; ++et) { | 172 for (int et = 0; et < kGrProcessorEdgeTypeCnt; ++et) { |
175 GrTestTarget tt; | 173 GrTestTarget tt; |
(...skipping 10 matching lines...) Expand all Loading... |
186 SkAutoTUnref<GrFragmentProcessor> fp(GrConvexPolyEffect::Create(
edgeType, p)); | 184 SkAutoTUnref<GrFragmentProcessor> fp(GrConvexPolyEffect::Create(
edgeType, p)); |
187 if (!fp) { | 185 if (!fp) { |
188 continue; | 186 continue; |
189 } | 187 } |
190 | 188 |
191 GrPipelineBuilder pipelineBuilder; | 189 GrPipelineBuilder pipelineBuilder; |
192 pipelineBuilder.addCoverageProcessor(fp); | 190 pipelineBuilder.addCoverageProcessor(fp); |
193 pipelineBuilder.setRenderTarget(rt); | 191 pipelineBuilder.setRenderTarget(rt); |
194 | 192 |
195 ConvexPolyTestBatch::Geometry geometry; | 193 ConvexPolyTestBatch::Geometry geometry; |
196 geometry.fColor = color.fColor; | 194 geometry.fColor = color; |
197 geometry.fBounds = p.getBounds(); | 195 geometry.fBounds = p.getBounds(); |
198 | 196 |
199 SkAutoTUnref<GrBatch> batch(ConvexPolyTestBatch::Create(gp, geom
etry)); | 197 SkAutoTUnref<GrBatch> batch(ConvexPolyTestBatch::Create(gp, geom
etry)); |
200 | 198 |
201 tt.target()->drawBatch(pipelineBuilder, batch); | 199 tt.target()->drawBatch(pipelineBuilder, batch); |
202 | 200 |
203 x += SkScalarCeilToScalar(path->getBounds().width() + 10.f); | 201 x += SkScalarCeilToScalar(path->getBounds().width() + 10.f); |
204 } | 202 } |
205 | 203 |
206 // Draw AA and non AA paths using normal API for reference. | 204 // Draw AA and non AA paths using normal API for reference. |
(...skipping 28 matching lines...) Expand all Loading... |
235 SkAutoTUnref<GrFragmentProcessor> fp(GrConvexPolyEffect::Create(
edgeType, rect)); | 233 SkAutoTUnref<GrFragmentProcessor> fp(GrConvexPolyEffect::Create(
edgeType, rect)); |
236 if (!fp) { | 234 if (!fp) { |
237 continue; | 235 continue; |
238 } | 236 } |
239 | 237 |
240 GrPipelineBuilder pipelineBuilder; | 238 GrPipelineBuilder pipelineBuilder; |
241 pipelineBuilder.addCoverageProcessor(fp); | 239 pipelineBuilder.addCoverageProcessor(fp); |
242 pipelineBuilder.setRenderTarget(rt); | 240 pipelineBuilder.setRenderTarget(rt); |
243 | 241 |
244 ConvexPolyTestBatch::Geometry geometry; | 242 ConvexPolyTestBatch::Geometry geometry; |
245 geometry.fColor = color.fColor; | 243 geometry.fColor = color; |
246 geometry.fBounds = rect; | 244 geometry.fBounds = rect; |
247 | 245 |
248 SkAutoTUnref<GrBatch> batch(ConvexPolyTestBatch::Create(gp, geom
etry)); | 246 SkAutoTUnref<GrBatch> batch(ConvexPolyTestBatch::Create(gp, geom
etry)); |
249 | 247 |
250 tt.target()->drawBatch(pipelineBuilder, batch); | 248 tt.target()->drawBatch(pipelineBuilder, batch); |
251 | 249 |
252 x += SkScalarCeilToScalar(rect.width() + 10.f); | 250 x += SkScalarCeilToScalar(rect.width() + 10.f); |
253 } | 251 } |
254 | 252 |
255 // Draw rect without and with AA using normal API for reference | 253 // Draw rect without and with AA using normal API for reference |
(...skipping 14 matching lines...) Expand all Loading... |
270 SkTLList<SkPath> fPaths; | 268 SkTLList<SkPath> fPaths; |
271 SkTLList<SkRect> fRects; | 269 SkTLList<SkRect> fRects; |
272 | 270 |
273 typedef GM INHERITED; | 271 typedef GM INHERITED; |
274 }; | 272 }; |
275 | 273 |
276 DEF_GM( return SkNEW(ConvexPolyEffect); ) | 274 DEF_GM( return SkNEW(ConvexPolyEffect); ) |
277 } | 275 } |
278 | 276 |
279 #endif | 277 #endif |
OLD | NEW |