| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 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 |
| 11 #include "gm.h" | 11 #include "gm.h" |
| 12 | 12 |
| 13 #if SK_SUPPORT_GPU | 13 #if SK_SUPPORT_GPU |
| 14 | 14 |
| 15 #include "GrBatchTarget.h" | 15 #include "GrBatchFlushState.h" |
| 16 #include "GrContext.h" | 16 #include "GrContext.h" |
| 17 #include "GrPathUtils.h" | 17 #include "GrPathUtils.h" |
| 18 #include "GrTest.h" | 18 #include "GrTest.h" |
| 19 #include "SkColorPriv.h" | 19 #include "SkColorPriv.h" |
| 20 #include "SkDevice.h" | 20 #include "SkDevice.h" |
| 21 #include "SkGeometry.h" | 21 #include "SkGeometry.h" |
| 22 | 22 |
| 23 #include "batches/GrTestBatch.h" | 23 #include "batches/GrTestBatch.h" |
| 24 | 24 |
| 25 #include "effects/GrBezierEffect.h" | 25 #include "effects/GrBezierEffect.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 Geometry* geoData(int index) override { | 64 Geometry* geoData(int index) override { |
| 65 SkASSERT(0 == index); | 65 SkASSERT(0 == index); |
| 66 return &fGeometry; | 66 return &fGeometry; |
| 67 } | 67 } |
| 68 | 68 |
| 69 const Geometry* geoData(int index) const override { | 69 const Geometry* geoData(int index) const override { |
| 70 SkASSERT(0 == index); | 70 SkASSERT(0 == index); |
| 71 return &fGeometry; | 71 return &fGeometry; |
| 72 } | 72 } |
| 73 | 73 |
| 74 void onGenerateGeometry(GrBatchTarget* batchTarget) override { | 74 void generateGeometry(Target* target) override { |
| 75 QuadHelper helper; | 75 QuadHelper helper; |
| 76 size_t vertexStride = this->geometryProcessor()->getVertexStride(); | 76 size_t vertexStride = this->geometryProcessor()->getVertexStride(); |
| 77 SkASSERT(vertexStride == sizeof(Vertex)); | 77 SkASSERT(vertexStride == sizeof(Vertex)); |
| 78 Vertex* verts = reinterpret_cast<Vertex*>(helper.init(batchTarget, verte
xStride, 1)); | 78 Vertex* verts = reinterpret_cast<Vertex*>(helper.init(target, vertexStri
de, 1)); |
| 79 if (!verts) { | 79 if (!verts) { |
| 80 return; | 80 return; |
| 81 } | 81 } |
| 82 | 82 |
| 83 verts[0].fPosition.setRectFan(fGeometry.fBounds.fLeft, fGeometry.fBounds
.fTop, | 83 verts[0].fPosition.setRectFan(fGeometry.fBounds.fLeft, fGeometry.fBounds
.fTop, |
| 84 fGeometry.fBounds.fRight, fGeometry.fBound
s.fBottom, | 84 fGeometry.fBounds.fRight, fGeometry.fBound
s.fBottom, |
| 85 sizeof(Vertex)); | 85 sizeof(Vertex)); |
| 86 for (int v = 0; v < 4; ++v) { | 86 for (int v = 0; v < 4; ++v) { |
| 87 verts[v].fKLM[0] = eval_line(verts[v].fPosition, fKlmEqs + 0, fSign)
; | 87 verts[v].fKLM[0] = eval_line(verts[v].fPosition, fKlmEqs + 0, fSign)
; |
| 88 verts[v].fKLM[1] = eval_line(verts[v].fPosition, fKlmEqs + 3, fSign)
; | 88 verts[v].fKLM[1] = eval_line(verts[v].fPosition, fKlmEqs + 3, fSign)
; |
| 89 verts[v].fKLM[2] = eval_line(verts[v].fPosition, fKlmEqs + 6, 1.f); | 89 verts[v].fKLM[2] = eval_line(verts[v].fPosition, fKlmEqs + 6, 1.f); |
| 90 } | 90 } |
| 91 helper.issueDraw(batchTarget); | 91 helper.recordDraw(target); |
| 92 } | 92 } |
| 93 | 93 |
| 94 Geometry fGeometry; | 94 Geometry fGeometry; |
| 95 SkScalar fKlmEqs[9]; | 95 SkScalar fKlmEqs[9]; |
| 96 SkScalar fSign; | 96 SkScalar fSign; |
| 97 | 97 |
| 98 static const int kVertsPerCubic = 4; | 98 static const int kVertsPerCubic = 4; |
| 99 static const int kIndicesPerCubic = 6; | 99 static const int kIndicesPerCubic = 6; |
| 100 | 100 |
| 101 typedef GrTestBatch INHERITED; | 101 typedef GrTestBatch INHERITED; |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 Geometry* geoData(int index) override { | 460 Geometry* geoData(int index) override { |
| 461 SkASSERT(0 == index); | 461 SkASSERT(0 == index); |
| 462 return &fGeometry; | 462 return &fGeometry; |
| 463 } | 463 } |
| 464 | 464 |
| 465 const Geometry* geoData(int index) const override { | 465 const Geometry* geoData(int index) const override { |
| 466 SkASSERT(0 == index); | 466 SkASSERT(0 == index); |
| 467 return &fGeometry; | 467 return &fGeometry; |
| 468 } | 468 } |
| 469 | 469 |
| 470 void onGenerateGeometry(GrBatchTarget* batchTarget) override { | 470 void generateGeometry(Target* target) override { |
| 471 QuadHelper helper; | 471 QuadHelper helper; |
| 472 size_t vertexStride = this->geometryProcessor()->getVertexStride(); | 472 size_t vertexStride = this->geometryProcessor()->getVertexStride(); |
| 473 SkASSERT(vertexStride == sizeof(Vertex)); | 473 SkASSERT(vertexStride == sizeof(Vertex)); |
| 474 Vertex* verts = reinterpret_cast<Vertex*>(helper.init(batchTarget, verte
xStride, 1)); | 474 Vertex* verts = reinterpret_cast<Vertex*>(helper.init(target, vertexStri
de, 1)); |
| 475 if (!verts) { | 475 if (!verts) { |
| 476 return; | 476 return; |
| 477 } | 477 } |
| 478 verts[0].fPosition.setRectFan(fGeometry.fBounds.fLeft, fGeometry.fBounds
.fTop, | 478 verts[0].fPosition.setRectFan(fGeometry.fBounds.fLeft, fGeometry.fBounds
.fTop, |
| 479 fGeometry.fBounds.fRight, fGeometry.fBound
s.fBottom, | 479 fGeometry.fBounds.fRight, fGeometry.fBound
s.fBottom, |
| 480 sizeof(Vertex)); | 480 sizeof(Vertex)); |
| 481 fDevToUV.apply<4, sizeof(Vertex), sizeof(SkPoint)>(verts); | 481 fDevToUV.apply<4, sizeof(Vertex), sizeof(SkPoint)>(verts); |
| 482 helper.issueDraw(batchTarget); | 482 helper.recordDraw(target); |
| 483 } | 483 } |
| 484 | 484 |
| 485 Geometry fGeometry; | 485 Geometry fGeometry; |
| 486 GrPathUtils::QuadUVMatrix fDevToUV; | 486 GrPathUtils::QuadUVMatrix fDevToUV; |
| 487 | 487 |
| 488 static const int kVertsPerCubic = 4; | 488 static const int kVertsPerCubic = 4; |
| 489 static const int kIndicesPerCubic = 6; | 489 static const int kIndicesPerCubic = 6; |
| 490 | 490 |
| 491 typedef GrTestBatch INHERITED; | 491 typedef GrTestBatch INHERITED; |
| 492 }; | 492 }; |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 typedef GM INHERITED; | 631 typedef GM INHERITED; |
| 632 }; | 632 }; |
| 633 | 633 |
| 634 DEF_GM( return SkNEW(BezierCubicEffects); ) | 634 DEF_GM( return SkNEW(BezierCubicEffects); ) |
| 635 DEF_GM( return SkNEW(BezierConicEffects); ) | 635 DEF_GM( return SkNEW(BezierConicEffects); ) |
| 636 DEF_GM( return SkNEW(BezierQuadEffects); ) | 636 DEF_GM( return SkNEW(BezierQuadEffects); ) |
| 637 | 637 |
| 638 } | 638 } |
| 639 | 639 |
| 640 #endif | 640 #endif |
| OLD | NEW |