@@ -38,9 +38,9 @@ class _ShaderContainerState extends State<ShaderContainer>
38
38
with SingleTickerProviderStateMixin {
39
39
Future <FragmentShader >? _loader;
40
40
final Map <String , _Uniform > _uniforms = {};
41
+ final ValueNotifier <int > _tick = ValueNotifier (0 );
41
42
42
43
FragmentShader ? _shader;
43
- ValueNotifier <double >? _time;
44
44
Ticker ? _ticker;
45
45
46
46
String ? _shaderPath;
@@ -83,7 +83,7 @@ class _ShaderContainerState extends State<ShaderContainer>
83
83
return CustomPaint (
84
84
painter: _ShaderPainter (
85
85
shader: snapshot.data! ,
86
- repaint: _time ,
86
+ repaint: _tick ,
87
87
onPaint: _getPaintCallback ()),
88
88
child: widget.child);
89
89
} else {
@@ -171,6 +171,7 @@ class _ShaderContainerState extends State<ShaderContainer>
171
171
}
172
172
173
173
List <double > val = List .filled (uniform.size, 0 , growable: false );
174
+ _tick.value++ ;
174
175
175
176
if ((value.runtimeType == List <double >) && value.length == uniform.size) {
176
177
for (int i = 0 ; i < val.length; i++ ) {
@@ -263,11 +264,10 @@ class _ShaderContainerState extends State<ShaderContainer>
263
264
}
264
265
265
266
void _createTicker (_Uniform timeUniform) {
266
- _time = ValueNotifier (0.0 );
267
267
_ticker = createTicker ((elapsed) {
268
268
final double elapsedSeconds = elapsed.inMilliseconds / 1000 ;
269
269
_shader? .setFloat (timeUniform.index, elapsedSeconds);
270
- _time ? .value = elapsedSeconds ;
270
+ _tick .value++ ;
271
271
});
272
272
_updateTickerState ();
273
273
_ticker! .start ();
@@ -284,7 +284,7 @@ class _ShaderContainerState extends State<ShaderContainer>
284
284
int ? timeUniform;
285
285
286
286
_lookupBuffer (buffer, 0 , (start, line) {
287
- final List <String > split = line.split (RegExp (r" \s+" ));
287
+ final List <String > split = line.split (RegExp (r' \s+' ));
288
288
289
289
if (split.length >= 3 && split[0 ] == 'uniform' ) {
290
290
if (_uniforms.containsKey (split[2 ])) {
@@ -315,7 +315,7 @@ class _ShaderContainerState extends State<ShaderContainer>
315
315
316
316
if (size != null ) {
317
317
_lookupBuffer (buffer, start, (_, line) {
318
- final List <String > s = line.split (RegExp (r" (\s+|[-*+/(),])" ));
318
+ final List <String > s = line.split (RegExp (r' (\s+|[-*+/(),])' ));
319
319
320
320
for (var i = 0 ; i < s.length; i++ ) {
321
321
if (s[i] == split[2 ]) {
0 commit comments