aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/VerticesTest.cpp
diff options
context:
space:
mode:
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) {