diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index b6d65ab5b9cd6..cb21491ac01d9 100755 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -517,6 +517,7 @@ FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shader_mask.dart FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/normalized_gradient.dart FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/shader.dart FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/shader_builder.dart +FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/shaders/vertex_shaders.dart FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/surface.dart FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/surface_stats.dart FILE: ../../../flutter/lib/web_ui/lib/src/engine/html/transform.dart diff --git a/lib/web_ui/lib/src/engine.dart b/lib/web_ui/lib/src/engine.dart index 3c06fc0dfc200..c2f69676f6789 100644 --- a/lib/web_ui/lib/src/engine.dart +++ b/lib/web_ui/lib/src/engine.dart @@ -38,6 +38,12 @@ export 'engine/alarm_clock.dart'; import 'engine/browser_detection.dart'; export 'engine/browser_detection.dart'; +import 'engine/html_image_codec.dart'; +export 'engine/html_image_codec.dart'; + +import 'engine/html/painting.dart'; +export 'engine/html/painting.dart'; + import 'engine/html/path_to_svg_clip.dart'; export 'engine/html/path_to_svg_clip.dart'; @@ -56,9 +62,27 @@ export 'engine/html/path/path_metrics.dart'; import 'engine/html/path/path_ref.dart'; export 'engine/html/path/path_ref.dart'; +import 'engine/html/path/path_to_svg.dart'; +export 'engine/html/path/path_to_svg.dart'; + import 'engine/html/path/path_utils.dart'; export 'engine/html/path/path_utils.dart'; +import 'engine/html/path/path_windings.dart'; +export 'engine/html/path/path_windings.dart'; + +import 'engine/html/path/tangent.dart'; +export 'engine/html/path/tangent.dart'; + +import 'engine/html/shaders/normalized_gradient.dart'; +export 'engine/html/shaders/normalized_gradient.dart'; + +import 'engine/html/shaders/shader_builder.dart'; +export 'engine/html/shaders/shader_builder.dart'; + +import 'engine/html/shaders/vertex_shaders.dart'; +export 'engine/html/shaders/vertex_shaders.dart'; + import 'engine/mouse_cursor.dart'; export 'engine/mouse_cursor.dart'; @@ -155,6 +179,7 @@ part 'engine/color_filter.dart'; part 'engine/dom_canvas.dart'; part 'engine/dom_renderer.dart'; part 'engine/engine_canvas.dart'; +part 'engine/font_change_util.dart'; part 'engine/frame_reference.dart'; part 'engine/html/backdrop_filter.dart'; part 'engine/html/canvas.dart'; @@ -164,11 +189,7 @@ part 'engine/html/debug_canvas_reuse_overlay.dart'; part 'engine/html/image_filter.dart'; part 'engine/html/offset.dart'; part 'engine/html/opacity.dart'; -part 'engine/html/painting.dart'; part 'engine/html/path/path.dart'; -part 'engine/html/path/path_to_svg.dart'; -part 'engine/html/path/path_windings.dart'; -part 'engine/html/path/tangent.dart'; part 'engine/html/picture.dart'; part 'engine/html/platform_view.dart'; part 'engine/html/recording_canvas.dart'; @@ -176,13 +197,10 @@ part 'engine/html/render_vertices.dart'; part 'engine/html/scene.dart'; part 'engine/html/scene_builder.dart'; part 'engine/html/shader_mask.dart'; -part 'engine/html/shaders/normalized_gradient.dart'; part 'engine/html/shaders/shader.dart'; -part 'engine/html/shaders/shader_builder.dart'; part 'engine/html/surface.dart'; part 'engine/html/surface_stats.dart'; part 'engine/html/transform.dart'; -part 'engine/html_image_codec.dart'; part 'engine/keyboard_binding.dart'; part 'engine/keyboard.dart'; part 'engine/key_map.dart'; @@ -219,7 +237,6 @@ part 'engine/text_editing/autofill_hint.dart'; part 'engine/text_editing/input_type.dart'; part 'engine/text_editing/text_capitalization.dart'; part 'engine/text_editing/text_editing.dart'; -part 'engine/font_change_util.dart'; part 'engine/window.dart'; // The mode the app is running in. diff --git a/lib/web_ui/lib/src/engine/bitmap_canvas.dart b/lib/web_ui/lib/src/engine/bitmap_canvas.dart index 860cc1fb7bc07..b5af3350d356e 100644 --- a/lib/web_ui/lib/src/engine/bitmap_canvas.dart +++ b/lib/web_ui/lib/src/engine/bitmap_canvas.dart @@ -963,7 +963,7 @@ class BitmapCanvas extends EngineCanvas { // blendMode. https://github.com/flutter/flutter/issues/40096 // Move rendering to OffscreenCanvas so that transform is preserved // as well. - assert(paint.shader == null || paint.shader is ImageShader, + assert(paint.shader == null || paint.shader is EngineImageShader, 'Linear/Radial/SweepGradient not supported yet'); final Int32List? colors = vertices._colors; final ui.VertexMode mode = vertices._mode; diff --git a/lib/web_ui/lib/src/engine/dom_canvas.dart b/lib/web_ui/lib/src/engine/dom_canvas.dart index 2b6fa31028ffd..d72a5d9fafe55 100644 --- a/lib/web_ui/lib/src/engine/dom_canvas.dart +++ b/lib/web_ui/lib/src/engine/dom_canvas.dart @@ -267,7 +267,7 @@ html.Element _pathToSvgElement(SurfacePath path, SurfacePaintData paint, sb.write('fill-rule="evenodd" '); } sb.write('d="'); - pathToSvg(path, sb); + pathToSvg(path.pathRef, sb); sb.write('">'); sb.write(''); return html.Element.html(sb.toString(), treeSanitizer: _NullTreeSanitizer()); diff --git a/lib/web_ui/lib/src/engine/html/painting.dart b/lib/web_ui/lib/src/engine/html/painting.dart index 683579a49132e..09acfbe0c9713 100644 --- a/lib/web_ui/lib/src/engine/html/painting.dart +++ b/lib/web_ui/lib/src/engine/html/painting.dart @@ -2,7 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'package:ui/ui.dart' as ui; + +import '../util.dart'; /// Implementation of [ui.Paint] used by the HTML rendering backend. class SurfacePaint implements ui.Paint { diff --git a/lib/web_ui/lib/src/engine/html/path/path_to_svg.dart b/lib/web_ui/lib/src/engine/html/path/path_to_svg.dart index 71968c9334a7e..6bcbff9a5978d 100644 --- a/lib/web_ui/lib/src/engine/html/path/path_to_svg.dart +++ b/lib/web_ui/lib/src/engine/html/path/path_to_svg.dart @@ -2,13 +2,19 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:typed_data'; + +import 'package:ui/ui.dart' as ui; + +import 'conic.dart'; +import 'path_ref.dart'; +import 'path_utils.dart'; /// Converts [path] to SVG path syntax to be used as "d" attribute in path /// element. -void pathToSvg(SurfacePath path, StringBuffer sb, +void pathToSvg(PathRef pathRef, StringBuffer sb, {double offsetX = 0, double offsetY = 0}) { - final PathRefIterator iter = PathRefIterator(path.pathRef); + final PathRefIterator iter = PathRefIterator(pathRef); int verb = 0; final Float32List outPts = Float32List(PathRefIterator.kMaxBufferSize); while ((verb = iter.next(outPts)) != SPath.kDoneVerb) { diff --git a/lib/web_ui/lib/src/engine/html/path/path_windings.dart b/lib/web_ui/lib/src/engine/html/path/path_windings.dart index 9b2b4689ea740..380110d8ac0fa 100644 --- a/lib/web_ui/lib/src/engine/html/path/path_windings.dart +++ b/lib/web_ui/lib/src/engine/html/path/path_windings.dart @@ -2,7 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:math' as math; +import 'dart:typed_data'; + +import 'conic.dart'; +import 'cubic.dart'; +import 'path_iterator.dart'; +import 'path_ref.dart'; +import 'path_utils.dart'; /// Computes winding number and onCurveCount for a path and point. class PathWinding { diff --git a/lib/web_ui/lib/src/engine/html/path/tangent.dart b/lib/web_ui/lib/src/engine/html/path/tangent.dart index a9780e8d2c0a8..44c009b68ca50 100644 --- a/lib/web_ui/lib/src/engine/html/path/tangent.dart +++ b/lib/web_ui/lib/src/engine/html/path/tangent.dart @@ -2,7 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:typed_data'; + +import 'package:ui/ui.dart' as ui; + +import 'conic.dart'; +import 'cubic.dart'; +import 'path_utils.dart'; /// Computes tangent at point x,y on a line. void tangentLine( diff --git a/lib/web_ui/lib/src/engine/html/path_to_svg_clip.dart b/lib/web_ui/lib/src/engine/html/path_to_svg_clip.dart index b8e7523a61892..878ba758957da 100644 --- a/lib/web_ui/lib/src/engine/html/path_to_svg_clip.dart +++ b/lib/web_ui/lib/src/engine/html/path_to_svg_clip.dart @@ -43,7 +43,7 @@ String pathToSvgClipPath(ui.Path path, sb.write(' _programCache; + static late Map _programCache; - _GlContext.fromOffscreenCanvas(html.OffscreenCanvas canvas) + GlContext.fromOffscreenCanvas(html.OffscreenCanvas canvas) : glContext = canvas.getContext('webgl2', {'premultipliedAlpha': false})!, isOffscreen = true { - _programCache = {}; + _programCache = {}; _canvas = canvas; } - _GlContext.fromCanvas(html.CanvasElement canvas, bool useWebGl1) + GlContext.fromCanvas(html.CanvasElement canvas, bool useWebGl1) : glContext = canvas.getContext(useWebGl1 ? 'webgl' : 'webgl2', {'premultipliedAlpha': false})!, isOffscreen = false { - _programCache = {}; + _programCache = {}; _canvas = canvas; } @@ -712,10 +680,10 @@ class _GlContext { left, top, _widthInPixels, _heightInPixels]); } - _GlProgram cacheProgram( + GlProgram cacheProgram( String vertexShaderSource, String fragmentShaderSource) { String cacheKey = '$vertexShaderSource||$fragmentShaderSource'; - _GlProgram? cachedProgram = _programCache[cacheKey]; + GlProgram? cachedProgram = _programCache[cacheKey]; if (cachedProgram == null) { // Create and compile shaders. Object vertexShader = compileShader('VERTEX_SHADER', vertexShaderSource); @@ -726,7 +694,7 @@ class _GlContext { attachShader(program, vertexShader); attachShader(program, fragmentShader); linkProgram(program); - cachedProgram = _GlProgram(program); + cachedProgram = GlProgram(program); _programCache[cacheKey] = cachedProgram; } return cachedProgram; @@ -762,7 +730,7 @@ class _GlContext { } } - void useProgram(_GlProgram program) { + void useProgram(GlProgram program) { js_util.callMethod(glContext, 'useProgram', [program.program]); } @@ -1124,7 +1092,7 @@ class _OffScreenCanvas { class _GlContextCache { static int _maxPixelWidth = 0; static int _maxPixelHeight = 0; - static _GlContext? _cachedContext; + static GlContext? _cachedContext; static _OffScreenCanvas? _offScreenCanvas; static void dispose() { @@ -1134,7 +1102,7 @@ class _GlContextCache { _offScreenCanvas?.dispose(); } - static _GlContext? createGlContext(int widthInPixels, int heightInPixels) { + static GlContext? createGlContext(int widthInPixels, int heightInPixels) { if (widthInPixels > _maxPixelWidth || heightInPixels > _maxPixelHeight) { _cachedContext?.dispose(); _cachedContext = null; @@ -1145,9 +1113,9 @@ class _GlContextCache { _offScreenCanvas ??= _OffScreenCanvas(widthInPixels, heightInPixels); if (_OffScreenCanvas.supported) { _cachedContext ??= - _GlContext.fromOffscreenCanvas(_offScreenCanvas!._canvas!); + GlContext.fromOffscreenCanvas(_offScreenCanvas!._canvas!); } else { - _cachedContext ??= _GlContext.fromCanvas(_offScreenCanvas!._glCanvas!, + _cachedContext ??= GlContext.fromCanvas(_offScreenCanvas!._glCanvas!, webGLVersion == WebGLVersion.webgl1); } _cachedContext!.setViewportSize(widthInPixels, heightInPixels); diff --git a/lib/web_ui/lib/src/engine/html/shaders/normalized_gradient.dart b/lib/web_ui/lib/src/engine/html/shaders/normalized_gradient.dart index f11c1f5652bcd..5afe9fe0dade9 100644 --- a/lib/web_ui/lib/src/engine/html/shaders/normalized_gradient.dart +++ b/lib/web_ui/lib/src/engine/html/shaders/normalized_gradient.dart @@ -2,7 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:typed_data'; + +import 'package:ui/src/engine.dart'; + +import 'package:ui/ui.dart' as ui; +import 'shader_builder.dart'; /// Converts colors and stops to typed array of bias, scale and threshold to use /// in shaders. @@ -95,7 +100,7 @@ class NormalizedGradient { } /// Sets uniforms for threshold, bias and scale for program. - void setupUniforms(_GlContext gl, _GlProgram glProgram) { + void setupUniforms(GlContext gl, GlProgram glProgram) { for (int i = 0; i < thresholdCount; i++) { Object biasId = gl.getUniformLocation(glProgram.program, 'bias_$i'); gl.setUniform4f(biasId, _bias[i * 4], _bias[i * 4 + 1], _bias[i * 4 + 2], _bias[i * 4 + 3]); @@ -125,7 +130,7 @@ class NormalizedGradient { /// uniforms. /// /// Bias and scale data are vec4 uniforms that hold color data. -void _writeUnrolledBinarySearch(ShaderMethod method, int start, int end, +void writeUnrolledBinarySearch(ShaderMethod method, int start, int end, {required String probe, required String sourcePrefix, required String biasName, required String scaleName}) { @@ -141,13 +146,13 @@ void _writeUnrolledBinarySearch(ShaderMethod method, int start, int end, thresholdAtMid += '.${_vectorComponentIndexToName((mid + 1) % 4)}'; method.addStatement('if ($probe < $thresholdAtMid) {'); method.indent(); - _writeUnrolledBinarySearch(method, start, mid, + writeUnrolledBinarySearch(method, start, mid, probe: probe, sourcePrefix: sourcePrefix, biasName: biasName, scaleName: scaleName); method.unindent(); method.addStatement('} else {'); method.indent(); - _writeUnrolledBinarySearch(method, mid + 1, end, + writeUnrolledBinarySearch(method, mid + 1, end, probe: probe, sourcePrefix: sourcePrefix, biasName: biasName, scaleName: scaleName); method.unindent(); diff --git a/lib/web_ui/lib/src/engine/html/shaders/shader.dart b/lib/web_ui/lib/src/engine/html/shaders/shader.dart index 1a75e1cdfc855..a8e929776f76c 100644 --- a/lib/web_ui/lib/src/engine/html/shaders/shader.dart +++ b/lib/web_ui/lib/src/engine/html/shaders/shader.dart @@ -42,17 +42,17 @@ class GradientSweep extends EngineGradient { // Render gradient into a bitmap and create a canvas pattern. _OffScreenCanvas offScreenCanvas = _OffScreenCanvas(widthInPixels, heightInPixels); - _GlContext gl = _OffScreenCanvas.supported - ? _GlContext.fromOffscreenCanvas(offScreenCanvas._canvas!) - : _GlContext.fromCanvas( + GlContext gl = _OffScreenCanvas.supported + ? GlContext.fromOffscreenCanvas(offScreenCanvas._canvas!) + : GlContext.fromCanvas( offScreenCanvas._glCanvas!, webGLVersion == WebGLVersion.webgl1); gl.setViewportSize(widthInPixels, heightInPixels); NormalizedGradient normalizedGradient = NormalizedGradient(colors, stops: colorStops); - _GlProgram glProgram = gl.cacheProgram( - _WebGlRenderer.writeBaseVertexShader(), + GlProgram glProgram = gl.cacheProgram( + VertexShaders.writeBaseVertexShader(), _createSweepFragmentShader(normalizedGradient, tileMode)); gl.useProgram(glProgram); @@ -135,8 +135,8 @@ class GradientSweep extends EngineGradient { final Float32List? matrix4; } -class ImageShader implements ui.ImageShader { - ImageShader(ui.Image image, this.tileModeX, this.tileModeY, this.matrix4, this.filterQuality) +class EngineImageShader implements ui.ImageShader { + EngineImageShader(ui.Image image, this.tileModeX, this.tileModeY, this.matrix4, this.filterQuality) : _image = image as HtmlImage; final ui.TileMode tileModeX; @@ -225,17 +225,17 @@ class GradientLinear extends EngineGradient { // Render gradient into a bitmap and create a canvas pattern. _OffScreenCanvas offScreenCanvas = _OffScreenCanvas(widthInPixels, heightInPixels); - _GlContext gl = _OffScreenCanvas.supported - ? _GlContext.fromOffscreenCanvas(offScreenCanvas._canvas!) - : _GlContext.fromCanvas( + GlContext gl = _OffScreenCanvas.supported + ? GlContext.fromOffscreenCanvas(offScreenCanvas._canvas!) + : GlContext.fromCanvas( offScreenCanvas._glCanvas!, webGLVersion == WebGLVersion.webgl1); gl.setViewportSize(widthInPixels, heightInPixels); NormalizedGradient normalizedGradient = NormalizedGradient(colors, stops: colorStops); - _GlProgram glProgram = gl.cacheProgram( - _WebGlRenderer.writeBaseVertexShader(), + GlProgram glProgram = gl.cacheProgram( + VertexShaders.writeBaseVertexShader(), _createLinearFragmentShader(normalizedGradient, tileMode)); gl.useProgram(glProgram); @@ -438,7 +438,7 @@ String _writeSharedGradientShader(ShaderBuilder builder, ShaderMethod method, probeName = 'tiled_st'; break; } - _writeUnrolledBinarySearch(method, 0, gradient.thresholdCount - 1, + writeUnrolledBinarySearch(method, 0, gradient.thresholdCount - 1, probe: probeName, sourcePrefix: 'threshold', biasName: 'bias', @@ -496,17 +496,17 @@ class GradientRadial extends EngineGradient { // Render gradient into a bitmap and create a canvas pattern. _OffScreenCanvas offScreenCanvas = _OffScreenCanvas(widthInPixels, heightInPixels); - _GlContext gl = _OffScreenCanvas.supported - ? _GlContext.fromOffscreenCanvas(offScreenCanvas._canvas!) - : _GlContext.fromCanvas( + GlContext gl = _OffScreenCanvas.supported + ? GlContext.fromOffscreenCanvas(offScreenCanvas._canvas!) + : GlContext.fromCanvas( offScreenCanvas._glCanvas!, webGLVersion == WebGLVersion.webgl1); gl.setViewportSize(widthInPixels, heightInPixels); NormalizedGradient normalizedGradient = NormalizedGradient(colors, stops: colorStops); - _GlProgram glProgram = gl.cacheProgram( - _WebGlRenderer.writeBaseVertexShader(), + GlProgram glProgram = gl.cacheProgram( + VertexShaders.writeBaseVertexShader(), _createRadialFragmentShader( normalizedGradient, shaderBounds, tileMode)); gl.useProgram(glProgram); diff --git a/lib/web_ui/lib/src/engine/html/shaders/shader_builder.dart b/lib/web_ui/lib/src/engine/html/shaders/shader_builder.dart index 41b1695c04f4a..ce584dab49d34 100644 --- a/lib/web_ui/lib/src/engine/html/shaders/shader_builder.dart +++ b/lib/web_ui/lib/src/engine/html/shaders/shader_builder.dart @@ -2,7 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'package:ui/ui.dart' as ui; + +import '../../browser_detection.dart'; +import '../../util.dart'; /// Creates shader program for target webgl version. /// diff --git a/lib/web_ui/lib/src/engine/html/shaders/vertex_shaders.dart b/lib/web_ui/lib/src/engine/html/shaders/vertex_shaders.dart new file mode 100644 index 0000000000000..84bd37f786d99 --- /dev/null +++ b/lib/web_ui/lib/src/engine/html/shaders/vertex_shaders.dart @@ -0,0 +1,42 @@ +// 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. + +import 'shader_builder.dart'; +import '../../browser_detection.dart'; + +/// Provides common shaders used for gradients and drawVertices APIs. +class VertexShaders { + static String? _baseVertexShader; + + /// Creates a vertex shader transforms pixel space [Vertices.positions] to + /// final clipSpace -1..1 coordinates with inverted Y Axis. + /// #version 300 es + /// layout (location=0) in vec4 position; + /// layout (location=1) in vec4 color; + /// uniform mat4 u_ctransform; + /// uniform vec4 u_scale; + /// uniform vec4 u_shift; + /// out vec4 vColor; + /// void main() { + /// gl_Position = ((u_ctransform * position) * u_scale) + u_shift; + /// v_color = color.zyxw; + /// } + static String writeBaseVertexShader() { + if (_baseVertexShader == null) { + ShaderBuilder builder = ShaderBuilder(webGLVersion); + builder.addIn(ShaderType.kVec4, name: 'position'); + builder.addIn(ShaderType.kVec4, name: 'color'); + builder.addUniform(ShaderType.kMat4, name: 'u_ctransform'); + builder.addUniform(ShaderType.kVec4, name: 'u_scale'); + builder.addUniform(ShaderType.kVec4, name: 'u_shift'); + builder.addOut(ShaderType.kVec4, name: 'v_color'); + ShaderMethod method = builder.addMethod('main'); + method.addStatement( + 'gl_Position = ((u_ctransform * position) * u_scale) + u_shift;'); + method.addStatement('v_color = color.zyxw;'); + _baseVertexShader = builder.build(); + } + return _baseVertexShader!; + } +} diff --git a/lib/web_ui/lib/src/engine/html_image_codec.dart b/lib/web_ui/lib/src/engine/html_image_codec.dart index a691f52c6e4d5..8dfe8fb75f956 100644 --- a/lib/web_ui/lib/src/engine/html_image_codec.dart +++ b/lib/web_ui/lib/src/engine/html_image_codec.dart @@ -2,7 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -part of engine; +import 'dart:async'; +import 'dart:html' as html; +import 'dart:typed_data'; +import 'dart:js_util' as js_util; + +import 'package:ui/ui.dart' as ui; + +import 'browser_detection.dart'; +import 'util.dart'; final bool _supportsDecode = js_util.getProperty( js_util.getProperty( diff --git a/lib/web_ui/lib/src/ui/painting.dart b/lib/web_ui/lib/src/ui/painting.dart index 87201667e2ff6..94a1214156e31 100644 --- a/lib/web_ui/lib/src/ui/painting.dart +++ b/lib/web_ui/lib/src/ui/painting.dart @@ -695,7 +695,7 @@ class ImageShader extends Shader { FilterQuality? filterQuality, }) => engine.useCanvasKit ? engine.CkImageShader(image, tmx, tmy, matrix4, filterQuality) - : engine.ImageShader(image, tmx, tmy, matrix4, filterQuality); + : engine.EngineImageShader(image, tmx, tmy, matrix4, filterQuality); } class ImmutableBuffer { diff --git a/lib/web_ui/test/engine/image/html_image_codec_test.dart b/lib/web_ui/test/engine/image/html_image_codec_test.dart index 8723bb00d7552..6c50233c9f72e 100644 --- a/lib/web_ui/test/engine/image/html_image_codec_test.dart +++ b/lib/web_ui/test/engine/image/html_image_codec_test.dart @@ -9,7 +9,7 @@ import 'dart:typed_data'; import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/ui.dart' as ui; -import 'package:ui/src/engine.dart'; +import 'package:ui/src/engine/html_image_codec.dart'; void main() { internalBootstrapBrowserTest(() => testMain); diff --git a/lib/web_ui/test/engine/surface/scene_builder_test.dart b/lib/web_ui/test/engine/surface/scene_builder_test.dart index c964d4b22d627..04d692c4765ec 100644 --- a/lib/web_ui/test/engine/surface/scene_builder_test.dart +++ b/lib/web_ui/test/engine/surface/scene_builder_test.dart @@ -12,6 +12,7 @@ import 'dart:js_util' as js_util; import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; +import 'package:ui/src/engine/html_image_codec.dart'; import 'package:ui/ui.dart' hide window; diff --git a/lib/web_ui/test/engine/surface/shaders/normalized_gradient_test.dart b/lib/web_ui/test/engine/surface/shaders/normalized_gradient_test.dart index b413bb65a220f..dfe0c620de90c 100644 --- a/lib/web_ui/test/engine/surface/shaders/normalized_gradient_test.dart +++ b/lib/web_ui/test/engine/surface/shaders/normalized_gradient_test.dart @@ -5,7 +5,7 @@ // @dart = 2.6 import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; -import 'package:ui/src/engine.dart'; +import 'package:ui/src/engine/html/shaders/normalized_gradient.dart'; import 'package:ui/ui.dart' as ui hide window; void main() { diff --git a/lib/web_ui/test/engine/surface/shaders/shader_builder_test.dart b/lib/web_ui/test/engine/surface/shaders/shader_builder_test.dart index 336cf4f8d8890..df67ce9e7962f 100644 --- a/lib/web_ui/test/engine/surface/shaders/shader_builder_test.dart +++ b/lib/web_ui/test/engine/surface/shaders/shader_builder_test.dart @@ -6,6 +6,7 @@ import 'package:test/bootstrap/browser.dart'; import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; +import 'package:ui/src/engine/html/shaders/shader_builder.dart'; import 'package:ui/ui.dart' hide window; void main() { diff --git a/lib/web_ui/test/golden_tests/engine/draw_vertices_golden_test.dart b/lib/web_ui/test/golden_tests/engine/draw_vertices_golden_test.dart index acd6584a86004..273d068ed1489 100644 --- a/lib/web_ui/test/golden_tests/engine/draw_vertices_golden_test.dart +++ b/lib/web_ui/test/golden_tests/engine/draw_vertices_golden_test.dart @@ -366,7 +366,7 @@ void testMain() async { final HtmlImage img = await createTestImage(); final SurfacePaint paint = SurfacePaint(); - final ImageShader imgShader = ImageShader(img, tileMode, tileMode, + final EngineImageShader imgShader = EngineImageShader(img, tileMode, tileMode, Float64List.fromList(matrix4), FilterQuality.high); paint.shader = imgShader; diff --git a/lib/web_ui/test/golden_tests/engine/path_to_svg_golden_test.dart b/lib/web_ui/test/golden_tests/engine/path_to_svg_golden_test.dart index c405c0289c10c..ba3537618231d 100644 --- a/lib/web_ui/test/golden_tests/engine/path_to_svg_golden_test.dart +++ b/lib/web_ui/test/golden_tests/engine/path_to_svg_golden_test.dart @@ -205,7 +205,7 @@ html.Element pathToSvgElement(Path path, Paint paint, sb.write('fill="${colorToCssString(paint.color)}" '); } sb.write('d="'); - pathToSvg(path, sb); // This is what we're testing! + pathToSvg((path as SurfacePath).pathRef, sb); // This is what we're testing! sb.write('">'); sb.write(''); final html.Element svgElement =