From a7be276f22a27005dccae6aaf6c9fe4e8b2988cf Mon Sep 17 00:00:00 2001 From: Andy Wolff Date: Thu, 23 Apr 2026 09:42:27 -0700 Subject: [PATCH] Add new sample simple_sdf (#2835) Add a new sample, `simple_sdf`. This is similar to `simple_shader`, but it focuses on using Signed Distance Functions within the fragment shader. Relates to issue [#183043](https://github.com/flutter/flutter/issues/183043) ## Pre-launch Checklist - [x] I read the [Flutter Style Guide] _recently_, and have followed its advice. - [x] I signed the [CLA]. - [x] I read the [Contributors Guide]. - [ ] I have added sample code updates to the [changelog]. - [x] I updated/added relevant documentation (doc comments with `///`). If you need help, consider asking for advice on the #hackers-devrel channel on [Discord]. [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [CLA]: https://cla.developers.google.com/ [Discord]: https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md [Contributors Guide]: https://github.com/flutter/samples/blob/main/CONTRIBUTING.md [changelog]: ../CHANGELOG.md --- .github/dependabot.yaml | 6 +++ README.md | 2 + pubspec.yaml | 1 + simple_sdf/.gitignore | 44 ++++++++++++++++++++++ simple_sdf/README.md | 9 +++++ simple_sdf/analysis_options.yaml | 1 + simple_sdf/lib/main.dart | 59 +++++++++++++++++++++++++++++ simple_sdf/pubspec.yaml | 23 ++++++++++++ simple_sdf/screenshot.png | Bin 0 -> 114722 bytes simple_sdf/shaders/SDF.frag | 62 +++++++++++++++++++++++++++++++ simple_sdf/test/widget_test.dart | 9 +++++ 11 files changed, 216 insertions(+) create mode 100644 simple_sdf/.gitignore create mode 100644 simple_sdf/README.md create mode 100644 simple_sdf/analysis_options.yaml create mode 100644 simple_sdf/lib/main.dart create mode 100644 simple_sdf/pubspec.yaml create mode 100644 simple_sdf/screenshot.png create mode 100644 simple_sdf/shaders/SDF.frag create mode 100644 simple_sdf/test/widget_test.dart diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 7d0d76459..c6445bea5 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -281,6 +281,12 @@ updates: interval: "daily" labels: - "autosubmit" + - package-ecosystem: "pub" + directory: "simple_sdf/" + schedule: + interval: "daily" + labels: + - "autosubmit" - package-ecosystem: "pub" directory: "simple_shader/" schedule: diff --git a/README.md b/README.md index c7ad27a04..2e2f645d0 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ Googler's, you can freely add samples to the [flutter/demos] repository. * [`navigation_and_routing`] - A sample that shows how to use [go_router] API to handle common navigation scenarios. * [`pedometer`] - A demo of a plugin that leverages FFIgen & JNIgen to call platform APIs directly from Dart code. * [`platform_design`] - This sample project shows a Flutter app that maximizes application code reuse while adhering to different design patterns on Android and iOS. +* [`simple_sdf`] - A simple [Flutter fragment shaders] sample project showing how to draw Signed Distance Functions with the FragmentShader API. * [`simple_shader`] - A simple [Flutter fragment shaders] sample project. * [`testing_app`] - A sample app that shows different types of testing in Flutter. * [`web_embedding`] - This directory contains examples of how to embed Flutter in web apps (without iframes). @@ -123,6 +124,7 @@ If you run into a bug in one of the samples, please file an issue in the [`navigation_and_routing`]: ./navigation_and_routing [`pedometer`]: ./pedometer [`platform_design`]: ./platform_design +[`simple_sdf`]: ./simple_sdf [`simple_shader`]: ./simple_shader [`testing_app`]: ./testing_app [`web_embedding`]: ./web_embedding diff --git a/pubspec.yaml b/pubspec.yaml index e425740e3..a4a3adbf4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -35,6 +35,7 @@ workspace: - platform_channels - platform_design - platform_view_swift + - simple_sdf - simple_shader - testing_app - tool diff --git a/simple_sdf/.gitignore b/simple_sdf/.gitignore new file mode 100644 index 000000000..24476c5d1 --- /dev/null +++ b/simple_sdf/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/simple_sdf/README.md b/simple_sdf/README.md new file mode 100644 index 000000000..564c2cdde --- /dev/null +++ b/simple_sdf/README.md @@ -0,0 +1,9 @@ +# `simple_sdf` + +A simple [Flutter fragment shaders][] sample project showing how to draw Signed Distance Functions with the FragmentShader API. + +Use `flutter create --no-overwrite .` to initialize the project. + + [Flutter fragment shaders]: https://docs.flutter.dev/development/ui/advanced/shaders + +![Screenshot of the `simple_sdf` app](screenshot.png) diff --git a/simple_sdf/analysis_options.yaml b/simple_sdf/analysis_options.yaml new file mode 100644 index 000000000..13d6fe105 --- /dev/null +++ b/simple_sdf/analysis_options.yaml @@ -0,0 +1 @@ +include: package:analysis_defaults/flutter.yaml diff --git a/simple_sdf/lib/main.dart b/simple_sdf/lib/main.dart new file mode 100644 index 000000000..4a1bf38c4 --- /dev/null +++ b/simple_sdf/lib/main.dart @@ -0,0 +1,59 @@ +import 'dart:ui' as ui; + +import 'package:flutter/material.dart'; +import 'package:flutter_shaders/flutter_shaders.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Simple SDF Demo', + theme: ThemeData(colorSchemeSeed: Colors.blue), + home: const MyHomePage(), + ); + } +} + +class MyHomePage extends StatelessWidget { + const MyHomePage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('Simple SDF Demo')), + body: ShaderBuilder( + assetKey: 'shaders/SDF.frag', + (context, shader, child) => CustomPaint( + size: MediaQuery.of(context).size, + painter: ShaderPainter(shader: shader), + ), + child: const Center(child: CircularProgressIndicator()), + ), + ); + } +} + +class ShaderPainter extends CustomPainter { + ShaderPainter({required this.shader}); + ui.FragmentShader shader; + + @override + void paint(Canvas canvas, Size size) { + shader.setFloat(0, size.width); + shader.setFloat(1, size.height); + + final paint = Paint()..shader = shader; + canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), paint); + } + + @override + bool shouldRepaint(covariant CustomPainter oldDelegate) { + return false; + } +} diff --git a/simple_sdf/pubspec.yaml b/simple_sdf/pubspec.yaml new file mode 100644 index 000000000..4aebd30f4 --- /dev/null +++ b/simple_sdf/pubspec.yaml @@ -0,0 +1,23 @@ +name: simple_sdf +description: Using a shader, simply. +publish_to: 'none' +version: 1.0.0+1 +resolution: workspace + +environment: + sdk: ^3.9.0-0 + +dependencies: + flutter: + sdk: flutter + flutter_shaders: ^0.1.0 + +dev_dependencies: + analysis_defaults: + path: ../analysis_defaults + flutter_test: + sdk: flutter +flutter: + uses-material-design: true + shaders: + - shaders/SDF.frag diff --git a/simple_sdf/screenshot.png b/simple_sdf/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..405769e3daea7c5fd02400a8506e5a10185195a5 GIT binary patch literal 114722 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 z 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�Dc8H+b7Sg}>t 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 CR5d{W literal 0 HcmV?d00001 diff --git a/simple_sdf/shaders/SDF.frag b/simple_sdf/shaders/SDF.frag new file mode 100644 index 000000000..327222662 --- /dev/null +++ b/simple_sdf/shaders/SDF.frag @@ -0,0 +1,62 @@ +#version 460 core + +#include + +precision mediump float; + +uniform vec2 resolution; +out vec4 fragColor; + +vec3 pink = vec3(255, 105, 180) / 255; + +// dot2 and sdHeart from https://iquilezles.org/articles/distfunctions2d/ +// +// The MIT License +// Copyright © 2015 Inigo Quilez +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: The above copyright +// notice and this permission notice shall be included in all copies or +// substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", +// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +// THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// https://www.youtube.com/c/InigoQuilez +// https://iquilezles.org + +float dot2(vec2 v) { return dot(v, v); } +float sdHeart(in vec2 p) { + p.x = abs(p.x); + + if (p.y + p.x > 1.0) + return sqrt(dot2(p - vec2(0.25, 0.75))) - sqrt(2.0) / 4.0; + return sqrt(min(dot2(p - vec2(0.00, 1.00)), + dot2(p - 0.5 * max(p.x + p.y, 0.0)))) * + sign(p.x - p.y); +} + +void main() { + vec2 st = FlutterFragCoord().xy / resolution.xy; + // Remap coordinates. + // Flutter normalized coordinates have range [0,1] but sdHeart expects [-1,1]. + st = (st - vec2(0.5)) * vec2(2.0); + // Center the heart. + // sdHeart is written such that the bottom point is at (0,0) and it's about 1 + // unit tall. + st.y -= 0.5; + // Invert Y coordinate. + st.y *= -1; + + // Calculate the color of this pixel according to the heart SDF, using + // smoothstep to anti-alias the edges. + vec3 color = vec3(0.0); + color = mix(pink, color, smoothstep(0.01, 0.02, sdHeart(st))); + + fragColor = vec4(color, 1); +} diff --git a/simple_sdf/test/widget_test.dart b/simple_sdf/test/widget_test.dart new file mode 100644 index 000000000..794023811 --- /dev/null +++ b/simple_sdf/test/widget_test.dart @@ -0,0 +1,9 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:simple_sdf/main.dart'; + +void main() { + testWidgets('Smoke test', (tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + }); +}