diff --git a/lib/web_ui/lib/src/engine/compositor/vertices.dart b/lib/web_ui/lib/src/engine/compositor/vertices.dart index f93308ee841e9..fcafbd0c86a09 100644 --- a/lib/web_ui/lib/src/engine/compositor/vertices.dart +++ b/lib/web_ui/lib/src/engine/compositor/vertices.dart @@ -6,6 +6,9 @@ part of engine; js.JsArray _encodeRawColorList(Int32List rawColors) { + if (rawColors == null) { + return null; + } final int colorCount = rawColors.length; final List colors = List(colorCount); for (int i = 0; i < colorCount; ++i) { @@ -36,7 +39,8 @@ class SkVertices implements ui.Vertices { throw ArgumentError( '"indices" values must be valid indices in the positions list.'); - final js.JsArray> encodedPositions = encodePointList(positions); + final js.JsArray> encodedPositions = + encodePointList(positions); final js.JsArray> encodedTextures = encodePointList(textureCoordinates); final js.JsArray encodedColors = diff --git a/lib/web_ui/test/canvaskit/vertices_test.dart b/lib/web_ui/test/canvaskit/vertices_test.dart new file mode 100644 index 0000000000000..3e13fa3e86f4c --- /dev/null +++ b/lib/web_ui/test/canvaskit/vertices_test.dart @@ -0,0 +1,32 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// @dart = 2.6 +import 'dart:typed_data'; + +import 'package:test/test.dart'; + +import 'package:ui/src/engine.dart'; +import 'package:ui/ui.dart' as ui; + +void main() { + group( + 'SkVertices', + () { + setUpAll(() async { + await ui.webOnlyInitializePlatform(); + }); + + test('Using CanvasKit', () { + expect(experimentalUseSkia, true); + }); + + test('Can create SkVertices.raw with null colors', () { + SkVertices vertices = + SkVertices.raw(ui.VertexMode.triangles, Float32List.fromList([])); + expect(vertices, isNotNull); + }); + }, + ); +}