`simple_shader`: Utilise `flutter_shaders` (#1673)

pull/1683/head
Brett Morgan 3 years ago committed by GitHub
parent 64d10ca175
commit 5917d3515c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,6 +1,7 @@
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:flutter_shaders/flutter_shaders.dart';
void main() {
runApp(const MyApp());
@ -22,44 +23,26 @@ class MyApp extends StatelessWidget {
}
}
class MyHomePage extends StatefulWidget {
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
late Future<ui.FragmentProgram> program;
@override
void initState() {
super.initState();
program = ui.FragmentProgram.fromAsset('shaders/simple.frag');
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Simple Shader Demo'),
),
body: FutureBuilder<ui.FragmentProgram>(
future: program,
builder: (context, snapshot) {
if (snapshot.hasData) {
return CustomPaint(
size: MediaQuery.of(context).size,
painter: ShaderPainter(
shader: snapshot.data!.fragmentShader(),
),
);
}
if (snapshot.hasError) {
return Center(child: Text('${snapshot.error}'));
}
return const Center(child: CircularProgressIndicator());
},
body: ShaderBuilder(
assetKey: 'shaders/simple.frag',
(context, shader, child) => CustomPaint(
size: MediaQuery.of(context).size,
painter: ShaderPainter(
shader: shader,
),
),
child: const Center(
child: CircularProgressIndicator(),
),
),
);
}

@ -9,6 +9,7 @@ environment:
dependencies:
flutter:
sdk: flutter
flutter_shaders: ^0.0.6
dev_dependencies:
analysis_defaults:

Loading…
Cancel
Save