Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WEB] ShaderMask crash #56541

Closed
maxnemoy opened this issue May 7, 2020 · 2 comments
Closed

[WEB] ShaderMask crash #56541

maxnemoy opened this issue May 7, 2020 · 2 comments

Comments

@maxnemoy
Copy link

maxnemoy commented May 7, 2020

I want to get text with a gradient on web platform

Steps to Reproduce

Widget build(BuildContext context) {
    return ShaderMask(
      shaderCallback: (bounds) => LinearGradient(colors: [
        Colors.blue.shade400,
        Colors.blue.shade900,
      ]).createShader(
        Rect.fromLTWH(0, 0, bounds.width, bounds.height),
      ),
      child: Text(
        text,
        style: TextStyle(
          color: Colors.white,
          fontSize: 40,
        ),
      ),
    );
  }

I get an error

[+1425 ms] ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════

[   +1 ms] The following UnimplementedError was thrown during a scheduler callback:

[   +4 ms] UnimplementedError

[  +22 ms] When the exception was thrown, this was the stack:

[  +13 ms] C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49  throw_

[   +1 ms] C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/surface/scene_builder.dart 250:5           pushShaderMask

[  +13 ms] packages/flutter/src/rendering/layer.dart 1856:26                                                                          addToScene

[   +1 ms] packages/flutter/src/rendering/layer.dart 443:5                                                                            [_addToSceneWithRetainedRendering]

[  +14 ms] packages/flutter/src/rendering/layer.dart 1066:14                                                                          addChildrenToScene

[   +1 ms] packages/flutter/src/rendering/layer.dart 2044:5                                                                           addToScene

[   +1 ms] packages/flutter/src/rendering/layer.dart 443:5                                                                            [_addToSceneWithRetainedRendering]

[  +11 ms] packages/flutter/src/rendering/layer.dart 1066:14                                                                          addChildrenToScene

[   +1 ms] packages/flutter/src/rendering/layer.dart 1204:5                                                                           addToScene

[   +1 ms] packages/flutter/src/rendering/layer.dart 443:5                                                                            [_addToSceneWithRetainedRendering]

[   +1 ms] packages/flutter/src/rendering/layer.dart 1066:14                                                                          addChildrenToScene

[  +10 ms] packages/flutter/src/rendering/layer.dart 1204:5                                                                           addToScene

[   +1 ms] packages/flutter/src/rendering/layer.dart 443:5                                                                            [_addToSceneWithRetainedRendering]

[   +1 ms] packages/flutter/src/rendering/layer.dart 1066:14                                                                          addChildrenToScene

[   +1 ms] packages/flutter/src/rendering/layer.dart 1652:5                                                                           addToScene

[        ] packages/flutter/src/rendering/layer.dart 803:5                                                                            buildScene

[   +1 ms] packages/flutter/src/rendering/view.dart 230:36                                                                            compositeFrame

[        ] packages/flutter/src/rendering/binding.dart 406:18                                                                         drawFrame

[        ] packages/flutter/src/widgets/binding.dart 865:13                                                                           drawFrame

[  +10 ms] packages/flutter/src/rendering/binding.dart 284:5                                                                          [_handlePersistentFrameCallback]

[   +1 ms] packages/flutter/src/scheduler/binding.dart 1074:15                                                                        [_invokeFrameCallback]

[   +1 ms] packages/flutter/src/scheduler/binding.dart 1013:9                                                                         handleDrawFrame

[        ] packages/flutter/src/scheduler/binding.dart 822:7                                                                          <fn>

[        ] C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart 50:19       internalCallback

[        ] ════════════════════════════════════════════════════════════════════════════════════════════════════

[   +2 ms] Another exception was thrown: UnimplementedError

i tried using this for windows, it works well

but if not used ShaderMask widget, like a

Text("GRADIENT",
            style: TextStyle(
                fontSize: 90,
                fontWeight: FontWeight.bold,
                foreground: Paint()
                  ..shader = LinearGradient(
                    colors: <Color>[Colors.red, Colors.yellow],
                  ).createShader(Rect.fromLTWH(0.0, 0.0, 1000.0, 90.0)))));
  }

it works correctly

Flutter doctor

flutter doctor -v
[✓] Flutter (Channel master, 1.18.0-13.0.pre.10, on Microsoft Windows [Version 10.0.18363.778], locale ru-RU)
    • Flutter version 1.18.0-13.0.pre.10 at D:\libs\flutter
    • Framework revision 8fbfe1cfbf (10 hours ago), 2020-05-06 17:36:01 -0700
    • Engine revision d6aa099de7
    • Dart version 2.9.0 (build 2.9.0-5.0.dev 4da5b40fb6)

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\maxne\AppData\Local\Android\sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: D:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio CommunityВ 2019 16.5.1)
    • Visual Studio at D:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio CommunityВ 2019 version 16.5.29920.165

[✓] Android Studio (version 3.6)
    • Android Studio at D:\Program Files\Android\Android Studio
    • Flutter plugin version 44.0.2
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[✓] Connected device (3 available)
    • Windows    • Windows    • windows-x64    • Microsoft Windows [Version 10.0.18363.778]
    • Web Server • web-server • web-javascript • Flutter Tools
    • Chrome     • chrome     • web-javascript • Google Chrome 81.0.4044.138

UPD:

Rect.fromLTWH works correctly only when turned on debug paint mode
sync

@TahaTesser
Copy link
Member

Hi @maxnemoy
Looks like ShaderMask isn't supported on web, put thumbs up emoji on mentioned issue
Closing as duplicate of #44152
Thank you

@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 21, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants