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 27 matching lines...) Expand all Loading... |
38 const char* name() const override { return "ConvexPolyTestBatch"; } | 38 const char* name() const override { return "ConvexPolyTestBatch"; } |
39 | 39 |
40 static GrDrawBatch* Create(const GrGeometryProcessor* gp, const Geometry& ge
o) { | 40 static GrDrawBatch* Create(const GrGeometryProcessor* gp, const Geometry& ge
o) { |
41 return new ConvexPolyTestBatch(gp, geo); | 41 return new ConvexPolyTestBatch(gp, geo); |
42 } | 42 } |
43 | 43 |
44 private: | 44 private: |
45 ConvexPolyTestBatch(const GrGeometryProcessor* gp, const Geometry& geo) | 45 ConvexPolyTestBatch(const GrGeometryProcessor* gp, const Geometry& geo) |
46 : INHERITED(ClassID(), gp, geo.fBounds) | 46 : INHERITED(ClassID(), gp, geo.fBounds) |
47 , fGeometry(geo) { | 47 , fGeometry(geo) { |
| 48 // Make sure any artifacts around the exterior of path are visible by us
ing overly |
| 49 // conservative bounding geometry. |
| 50 fGeometry.fBounds.outset(5.f, 5.f); |
48 } | 51 } |
49 | 52 |
50 Geometry* geoData(int index) override { | 53 Geometry* geoData(int index) override { |
51 SkASSERT(0 == index); | 54 SkASSERT(0 == index); |
52 return &fGeometry; | 55 return &fGeometry; |
53 } | 56 } |
54 | 57 |
55 const Geometry* geoData(int index) const override { | 58 const Geometry* geoData(int index) const override { |
56 SkASSERT(0 == index); | 59 SkASSERT(0 == index); |
57 return &fGeometry; | 60 return &fGeometry; |
58 } | 61 } |
59 | 62 |
60 void generateGeometry(Target* target) override { | 63 void generateGeometry(Target* target) const override { |
61 size_t vertexStride = this->geometryProcessor()->getVertexStride(); | 64 size_t vertexStride = this->geometryProcessor()->getVertexStride(); |
62 SkASSERT(vertexStride == sizeof(SkPoint)); | 65 SkASSERT(vertexStride == sizeof(SkPoint)); |
63 QuadHelper helper; | 66 QuadHelper helper; |
64 SkPoint* verts = reinterpret_cast<SkPoint*>(helper.init(target, vertexSt
ride, 1)); | 67 SkPoint* verts = reinterpret_cast<SkPoint*>(helper.init(target, vertexSt
ride, 1)); |
65 if (!verts) { | 68 if (!verts) { |
66 return; | 69 return; |
67 } | 70 } |
68 | 71 |
69 // Make sure any artifacts around the exterior of path are visible by us
ing overly | |
70 // conservative bounding geometry. | |
71 fGeometry.fBounds.outset(5.f, 5.f); | |
72 fGeometry.fBounds.toQuad(verts); | 72 fGeometry.fBounds.toQuad(verts); |
73 | 73 |
74 helper.recordDraw(target); | 74 helper.recordDraw(target); |
75 } | 75 } |
76 | 76 |
77 Geometry fGeometry; | 77 Geometry fGeometry; |
78 | 78 |
79 typedef GrTestBatch INHERITED; | 79 typedef GrTestBatch INHERITED; |
80 }; | 80 }; |
81 | 81 |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 PathList fPaths; | 277 PathList fPaths; |
278 RectList fRects; | 278 RectList fRects; |
279 | 279 |
280 typedef GM INHERITED; | 280 typedef GM INHERITED; |
281 }; | 281 }; |
282 | 282 |
283 DEF_GM(return new ConvexPolyEffect;) | 283 DEF_GM(return new ConvexPolyEffect;) |
284 } | 284 } |
285 | 285 |
286 #endif | 286 #endif |
OLD | NEW |