Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 9204745

Browse files
author
Jonah Williams
authored
[web] remove runtime effect check (#38832)
1 parent a512ceb commit 9204745

File tree

4 files changed

+33
-50
lines changed

4 files changed

+33
-50
lines changed

lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,8 @@ extension CanvasKitExtension on CanvasKit {
136136
Object src,
137137
SkPartialImageInfo info,
138138
);
139-
140-
/// Retrieve the RuntimeEffect namespace for null checking.
141-
external Object? get RuntimeEffect;
142139
}
143140

144-
// TODO(jonahwilliams): remove this once all CanvasKit versions
145-
// are built in the SDK.
146-
// https://github.com/flutter/flutter/issues/114260
147-
final bool isRuntimeEffectAvailable = windowFlutterCanvasKit?.RuntimeEffect != null;
148-
149141
@JS('window.CanvasKitInit')
150142
external Object _CanvasKitInit(CanvasKitInitOptions options);
151143

lib/web_ui/lib/src/engine/canvaskit/renderer.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -384,9 +384,6 @@ class CanvasKitRenderer implements Renderer {
384384
if (_programs.containsKey(assetKey)) {
385385
return _programs[assetKey]!;
386386
}
387-
if (!isRuntimeEffectAvailable) {
388-
throw Exception('FragmentProgram is not supported.');
389-
}
390387
return _programs[assetKey] = assetManager.load(assetKey).then((ByteData data) {
391388
return CkFragmentProgram.fromBytes(assetKey, data.buffer.asUint8List());
392389
});

lib/web_ui/test/canvaskit/canvaskit_api_test.dart

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -349,44 +349,41 @@ void _shaderTests() {
349349
});
350350

351351
test('RuntimeEffect', () {
352-
// TODO(hterkelsen): Remove this check when local CanvasKit is default.
353-
if (isRuntimeEffectAvailable) {
354-
const String kSkSlProgram = r'''
352+
const String kSkSlProgram = r'''
355353
half4 main(vec2 fragCoord) {
356354
return vec4(1.0, 0.0, 0.0, 1.0);
357355
}
358356
''';
359357

360-
final SkRuntimeEffect? effect = MakeRuntimeEffect(kSkSlProgram);
361-
expect(effect, isNotNull);
358+
final SkRuntimeEffect? effect = MakeRuntimeEffect(kSkSlProgram);
359+
expect(effect, isNotNull);
362360

363-
const String kInvalidSkSlProgram = '';
361+
const String kInvalidSkSlProgram = '';
364362

365-
// Invalid SkSL returns null.
366-
final SkRuntimeEffect? invalidEffect = MakeRuntimeEffect(kInvalidSkSlProgram);
367-
expect(invalidEffect, isNull);
363+
// Invalid SkSL returns null.
364+
final SkRuntimeEffect? invalidEffect = MakeRuntimeEffect(kInvalidSkSlProgram);
365+
expect(invalidEffect, isNull);
368366

369-
final SkShader? shader = effect!.makeShader(<double>[]);
370-
expect(shader, isNotNull);
367+
final SkShader? shader = effect!.makeShader(<double>[]);
368+
expect(shader, isNotNull);
371369

372-
// mismatched uniforms returns null.
373-
final SkShader? invalidShader = effect.makeShader(<double>[1]);
370+
// mismatched uniforms returns null.
371+
final SkShader? invalidShader = effect.makeShader(<double>[1]);
374372

375-
expect(invalidShader, isNull);
373+
expect(invalidShader, isNull);
376374

377-
const String kSkSlProgramWithUniforms = r'''
375+
const String kSkSlProgramWithUniforms = r'''
378376
uniform vec4 u_color;
379377
380378
half4 main(vec2 fragCoord) {
381-
return u_color;
379+
return u_color;
382380
}
383-
''';
381+
''';
384382

385-
final SkShader? shaderWithUniform = MakeRuntimeEffect(kSkSlProgramWithUniforms)
386-
!.makeShader(<double>[1.0, 0.0, 0.0, 1.0]);
383+
final SkShader? shaderWithUniform = MakeRuntimeEffect(kSkSlProgramWithUniforms)
384+
!.makeShader(<double>[1.0, 0.0, 0.0, 1.0]);
387385

388-
expect(shaderWithUniform, isNotNull);
389-
}
386+
expect(shaderWithUniform, isNotNull);
390387
});
391388
}
392389

lib/web_ui/test/canvaskit/fragment_program_test.dart

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -186,29 +186,26 @@ void testMain() {
186186
});
187187

188188
test('FragmentProgram can be created from JSON IPLR bundle', () async {
189-
// TODO(hterkelsen): Remove this check when local CanvasKit is default.
190-
if (isRuntimeEffectAvailable) {
191-
final Uint8List data = utf8.encode(kJsonIPLR) as Uint8List;
192-
final CkFragmentProgram program = await CkFragmentProgram.fromBytes('test', data);
189+
final Uint8List data = utf8.encode(kJsonIPLR) as Uint8List;
190+
final CkFragmentProgram program = await CkFragmentProgram.fromBytes('test', data);
193191

194-
expect(program.effect, isNotNull);
195-
expect(program.floatCount, 32);
196-
expect(program.textureCount, 0);
197-
expect(program.uniforms, hasLength(17));
198-
expect(program.name, 'test');
192+
expect(program.effect, isNotNull);
193+
expect(program.floatCount, 32);
194+
expect(program.textureCount, 0);
195+
expect(program.uniforms, hasLength(17));
196+
expect(program.name, 'test');
199197

200-
final ui.FragmentShader shader = program.fragmentShader();
198+
final ui.FragmentShader shader = program.fragmentShader();
201199

202-
shader.setFloat(0, 4);
203-
shader.dispose();
200+
shader.setFloat(0, 4);
201+
shader.dispose();
204202

205-
expect(shader.debugDisposed, true);
203+
expect(shader.debugDisposed, true);
206204

207-
final ui.FragmentShader shader2 = program.fragmentShader();
205+
final ui.FragmentShader shader2 = program.fragmentShader();
208206

209-
shader.setFloat(0, 5);
210-
shader2.dispose();
211-
expect(shader2.debugDisposed, true);
212-
}
207+
shader.setFloat(0, 5);
208+
shader2.dispose();
209+
expect(shader2.debugDisposed, true);
213210
});
214211
}

0 commit comments

Comments
 (0)