diff options
author | Brian Salomon <bsalomon@google.com> | 2018-04-28 16:13:08 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-04-28 20:32:15 +0000 |
commit | cccafe8cfd2366b60585c0b65531282abb7a1404 (patch) | |
tree | 6740007d65f65712ed413f3b8fee4037d38cf36d /tests/VerticesTest.cpp | |
parent | 5b6d4a35467032fcac463f5e119c5170badc7521 (diff) |
Rewrite SkVertices specified with triangle fans as indexed triangles
Change-Id: Ifaacc426bc657b324f6a885a8ef70b347b048226
Reviewed-on: https://skia-review.googlesource.com/124349
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'tests/VerticesTest.cpp')
-rw-r--r-- | tests/VerticesTest.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/VerticesTest.cpp b/tests/VerticesTest.cpp index f55adb0ed3..5bcb11f1d3 100644 --- a/tests/VerticesTest.cpp +++ b/tests/VerticesTest.cpp @@ -88,6 +88,37 @@ DEF_TEST(Vertices, reporter) { REPORTER_ASSERT(reporter, equal(v0.get(), v1.get())); } } + { + // This has the maximum number of vertices to be rewritten as indexed triangles without + // overflowing a 16bit index. + SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 21847, 0, + SkVertices::kHasColors_BuilderFlag); + REPORTER_ASSERT(reporter, builder.isValid()); + } + { + // This has too many to be rewritten. + SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 21848, 0, + SkVertices::kHasColors_BuilderFlag); + REPORTER_ASSERT(reporter, !builder.isValid()); + } + { + // Only two vertices - can't be rewritten. + SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 2, 0, + SkVertices::kHasColors_BuilderFlag); + REPORTER_ASSERT(reporter, !builder.isValid()); + } + { + // Minimum number of indices to be rewritten. + SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 10, 3, + SkVertices::kHasColors_BuilderFlag); + REPORTER_ASSERT(reporter, builder.isValid()); + } + { + // Too few indices to be rewritten. + SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 10, 2, + SkVertices::kHasColors_BuilderFlag); + REPORTER_ASSERT(reporter, !builder.isValid()); + } } static void fill_triangle(SkCanvas* canvas, const SkPoint pts[], SkColor c) { |