From c3a13de81f1f012520d5e9376e7af6a4209d84fa Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Tue, 23 Jun 2020 17:00:07 -0700 Subject: [PATCH 1/4] Allow the color list to be null. Fixes https://github.com/flutter/flutter/issues/60101 --- lib/web_ui/lib/src/engine/compositor/vertices.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/web_ui/lib/src/engine/compositor/vertices.dart b/lib/web_ui/lib/src/engine/compositor/vertices.dart index f93308ee841e9..2d91afad4b21d 100644 --- a/lib/web_ui/lib/src/engine/compositor/vertices.dart +++ b/lib/web_ui/lib/src/engine/compositor/vertices.dart @@ -6,6 +6,7 @@ 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) { From 5879cfb43c6c8fc255da6ed914f2a1f04d64ca62 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Wed, 24 Jun 2020 19:39:25 -0700 Subject: [PATCH 2/4] Add test --- .../lib/src/engine/compositor/vertices.dart | 3 +- lib/web_ui/test/canvaskit/vertices_test.dart | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 lib/web_ui/test/canvaskit/vertices_test.dart diff --git a/lib/web_ui/lib/src/engine/compositor/vertices.dart b/lib/web_ui/lib/src/engine/compositor/vertices.dart index 2d91afad4b21d..debb18177cf3b 100644 --- a/lib/web_ui/lib/src/engine/compositor/vertices.dart +++ b/lib/web_ui/lib/src/engine/compositor/vertices.dart @@ -37,7 +37,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); + }); + }, + ); +} From f8dc05d75b34b53618ee0562336327f6306c0c76 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 25 Jun 2020 14:22:50 -0700 Subject: [PATCH 3/4] Fix lint --- lib/web_ui/lib/src/engine/compositor/vertices.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/web_ui/lib/src/engine/compositor/vertices.dart b/lib/web_ui/lib/src/engine/compositor/vertices.dart index debb18177cf3b..e58aa8ef62f2b 100644 --- a/lib/web_ui/lib/src/engine/compositor/vertices.dart +++ b/lib/web_ui/lib/src/engine/compositor/vertices.dart @@ -6,7 +6,9 @@ part of engine; js.JsArray _encodeRawColorList(Int32List rawColors) { - if (rawColors == null) return null; + if (rawColors == null) { + return null; + } final int colorCount = rawColors.length; final List colors = List(colorCount); for (int i = 0; i < colorCount; ++i) { @@ -112,4 +114,6 @@ class SkVertices implements ui.Vertices { return false; } } +} + } } From 902731e955e0bf600f0ca11911c59f613b013344 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Thu, 25 Jun 2020 14:24:45 -0700 Subject: [PATCH 4/4] Fix weird formatter bug --- lib/web_ui/lib/src/engine/compositor/vertices.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/web_ui/lib/src/engine/compositor/vertices.dart b/lib/web_ui/lib/src/engine/compositor/vertices.dart index e58aa8ef62f2b..fcafbd0c86a09 100644 --- a/lib/web_ui/lib/src/engine/compositor/vertices.dart +++ b/lib/web_ui/lib/src/engine/compositor/vertices.dart @@ -114,6 +114,4 @@ class SkVertices implements ui.Vertices { return false; } } -} - } }