diff --git a/flutter_filament/lib/filament/widgets/filament_widget.dart b/flutter_filament/lib/filament/widgets/filament_widget.dart index 6e222363..21a01553 100644 --- a/flutter_filament/lib/filament/widgets/filament_widget.dart +++ b/flutter_filament/lib/filament/widgets/filament_widget.dart @@ -103,14 +103,26 @@ class _FilamentWidgetState extends State { } } + bool _resizing = false; + Future _resizeTexture(Size newSize) async { + if (_resizing) { + return; + } + await Future.delayed(Duration.zero); + if (_resizing) { + return; + } + _resizing = true; + var dpr = MediaQuery.of(context).devicePixelRatio; - _texture = await widget.plugin.resizeTexture( - _texture!, (dpr * newSize.width).ceil(), (dpr * newSize.height).ceil(), 0, 0); + _texture = await widget.plugin.resizeTexture(_texture!, + (dpr * newSize.width).ceil(), (dpr * newSize.height).ceil(), 0, 0); print( "Resized texture, new flutter ID is ${_texture!.flutterTextureId} (hardware ID ${_texture!.hardwareTextureId})"); setState(() {}); + _resizing = false; } @override