aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/VerticesTest.cpp
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2018-04-28 16:13:08 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-28 20:32:15 +0000
commitcccafe8cfd2366b60585c0b65531282abb7a1404 (patch)
tree6740007d65f65712ed413f3b8fee4037d38cf36d /tests/VerticesTest.cpp
parent5b6d4a35467032fcac463f5e119c5170badc7521 (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.cpp31
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) {