From d4aac62e873e263eaf6577480748510a1773ec0e Mon Sep 17 00:00:00 2001 From: Brandon DeRosier Date: Sun, 2 Aug 2026 03:18:47 -0700 Subject: [PATCH] Sample platform textures as scene textures Resolves #179. Adds `ExternalTexture`, a `TextureSource` fed by a platform texture id, so video, camera preview, and anything else a plugin registers with Flutter's texture registry can be assigned to a material texture slot. Frames are captured through the compositor, so an Android external OES texture or a biplanar NV12 buffer arrives as an ordinary RGBA texture and no material needs a variant. Capture is driven by the frames that sample the source rather than by a ticker, so an unused source costs nothing. macOS and iOS capture an empty frame today, because the engine resolves external textures for a snapshot without an Impeller context; a debug build warns when it sees this, and `WidgetTexture` still works there. --- examples/flutter_app/assets/testsrc.mp4 | Bin 0 -> 183218 bytes .../lib/example_external_texture.dart | 374 ++++++++++++++++++ examples/flutter_app/lib/main.dart | 2 + examples/flutter_app/pubspec.yaml | 5 + packages/flutter_scene/CHANGELOG.md | 1 + packages/flutter_scene/lib/scene.dart | 2 + .../lib/src/texture/external_texture.dart | 312 +++++++++++++++ .../test/external_texture_test.dart | 153 +++++++ 8 files changed, 849 insertions(+) create mode 100644 examples/flutter_app/assets/testsrc.mp4 create mode 100644 examples/flutter_app/lib/example_external_texture.dart create mode 100644 packages/flutter_scene/lib/src/texture/external_texture.dart create mode 100644 packages/flutter_scene/test/external_texture_test.dart diff --git a/examples/flutter_app/assets/testsrc.mp4 b/examples/flutter_app/assets/testsrc.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..48355b18da408ce5c60ba232da25695de2a0ff8d GIT binary patch literal 183218 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�R?j{z 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 literal 0 HcmV?d00001 diff --git a/examples/flutter_app/lib/example_external_texture.dart b/examples/flutter_app/lib/example_external_texture.dart new file mode 100644 index 00000000..bfb66120 --- /dev/null +++ b/examples/flutter_app/lib/example_external_texture.dart @@ -0,0 +1,374 @@ +import 'dart:math'; + +import 'package:camera/camera.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_scene/scene.dart' hide Material; +import 'package:vector_math/vector_math.dart' as vm; +import 'package:video_player/video_player.dart'; +import 'package:video_player_platform_interface/video_player_platform_interface.dart'; + +import 'example_action_hint.dart'; +import 'example_overlay.dart'; +import 'example_settings.dart'; + +/// Which live source feeds the scene. +enum _SourceKind { + video('Video file'), + camera('Camera'); + + const _SourceKind(this.label); + final String label; +} + +/// Spins the owning node about its Y axis. +class _SpinComponent extends Component { + _SpinComponent(this.radiansPerSecond); + + final double radiansPerSecond; + + @override + void update(double deltaSeconds) { + node.localTransform = + node.localTransform * + vm.Matrix4.rotationY(radiansPerSecond * deltaSeconds); + } +} + +/// A video file or the device camera sampled directly by scene materials. +/// +/// [ExternalTexture] captures a plugin's platform texture by id, so the same +/// frames the `Texture` widget would show become an ordinary material texture. +/// The feed lands on a flat screen and on a spinning cube, and the material +/// controls act on it like any other texture, so the surface can be made +/// glossy, rough, or self-lit. +/// +/// The camera feed arrives in sensor orientation. The `camera` plugin's own +/// preview widget rotates it for the display, and that rotation is not part of +/// the texture, so a portrait phone shows a sideways feed here. +class ExampleExternalTexture extends StatefulWidget { + const ExampleExternalTexture({super.key}); + + @override + State createState() => _ExampleExternalTextureState(); +} + +class _ExampleExternalTextureState extends State { + final Scene scene = Scene(); + + ExternalTexture? _source; + VideoPlayerController? _video; + CameraController? _camera; + _SourceKind _kind = _SourceKind.video; + String? _error; + bool _switching = false; + + late final PhysicallyBasedMaterial _screenMaterial; + late final PhysicallyBasedMaterial _cubeMaterial; + + double _roughness = 0.35; + double _metallic = 0.0; + double _emissive = 0.8; + + @override + void initState() { + super.initState(); + + _screenMaterial = PhysicallyBasedMaterial() + ..metallicFactor = _metallic + ..roughnessFactor = _roughness; + _cubeMaterial = PhysicallyBasedMaterial() + ..metallicFactor = _metallic + ..roughnessFactor = _roughness; + _applyEmissive(); + + scene.add( + Node( + name: 'floor', + localTransform: vm.Matrix4.translation(vm.Vector3(0, -1.5, 0)), + mesh: Mesh( + PlaneGeometry(width: 12, depth: 12), + PhysicallyBasedMaterial() + ..baseColorFactor = vm.Vector4(0.16, 0.18, 0.22, 1.0) + ..metallicFactor = 0.0 + ..roughnessFactor = 0.25, + ), + ), + ); + + scene.add( + Node( + name: 'screen', + localTransform: + vm.Matrix4.translation(vm.Vector3(-1.5, 0.1, 0)) * + vm.Matrix4.rotationY(0.35), + mesh: Mesh(CuboidGeometry(vm.Vector3(2.4, 2.4, 0.12)), _screenMaterial), + ), + ); + + scene.add( + Node( + name: 'cube', + localTransform: vm.Matrix4.translation(vm.Vector3(1.9, 0.1, 0)), + mesh: Mesh(CuboidGeometry(vm.Vector3(1.5, 1.5, 1.5)), _cubeMaterial), + )..addComponent(_SpinComponent(0.7)), + ); + + _select(_SourceKind.video); + } + + void _applyEmissive() { + final factor = vm.Vector4(_emissive, _emissive, _emissive, 1.0); + _screenMaterial.emissiveFactor = factor; + _cubeMaterial.emissiveFactor = factor; + } + + /// Points both materials at [source], or at nothing when it is null. + void _bind(ExternalTexture? source) { + _screenMaterial + ..baseColorTexture = source + ..emissiveTexture = source; + _cubeMaterial + ..baseColorTexture = source + ..emissiveTexture = source; + } + + Future _select(_SourceKind kind) async { + if (_switching) return; + _switching = true; + setState(() { + _kind = kind; + _error = null; + }); + await _teardown(); + try { + switch (kind) { + case _SourceKind.video: + await _startVideo(); + case _SourceKind.camera: + await _startCamera(); + } + } catch (error) { + if (mounted) setState(() => _error = '$error'); + } finally { + _switching = false; + if (mounted) setState(() {}); + } + } + + Future _startVideo() async { + final controller = VideoPlayerController.asset('assets/testsrc.mp4'); + _video = controller; + await controller.initialize(); + await controller.setLooping(true); + await controller.setVolume(0); + await controller.play(); + if (!mounted) return; + + // video_player exposes a player id, not a texture id, so the texture id + // comes off the platform view it builds. A platform-view player has no + // texture id at all; capture a WidgetTexture around the preview widget in + // that case. + // ignore: invalid_use_of_visible_for_testing_member + final playerId = controller.playerId; + final view = VideoPlayerPlatform.instance.buildViewWithOptions( + VideoViewOptions(playerId: playerId), + ); + if (view is! Texture) { + throw StateError( + 'This platform builds video previews as a platform view, which has no ' + 'texture id to capture.', + ); + } + final size = controller.value.size; + _attach(view.textureId, size.width.round(), size.height.round()); + } + + Future _startCamera() async { + final cameras = await availableCameras(); + if (cameras.isEmpty) throw StateError('No cameras available.'); + final controller = CameraController( + cameras.first, + ResolutionPreset.medium, + enableAudio: false, + ); + _camera = controller; + await controller.initialize(); + if (!mounted) return; + final size = controller.value.previewSize!; + // cameraId is the texture id the plugin's own preview samples. + _attach(controller.cameraId, size.width.round(), size.height.round()); + } + + void _attach(int textureId, int width, int height) { + final source = ExternalTexture( + textureId: textureId, + width: width, + height: height, + ); + _source = source; + _bind(source); + } + + Future _teardown() async { + _bind(null); + _source?.dispose(); + _source = null; + final video = _video; + _video = null; + await video?.dispose(); + final camera = _camera; + _camera = null; + await camera?.dispose(); + } + + @override + void dispose() { + _teardown(); + super.dispose(); + } + + Widget _slider({ + required String label, + required double value, + required ValueChanged onChanged, + }) => Row( + children: [ + SizedBox( + width: 76, + child: Text( + label, + style: const TextStyle(color: Colors.white, fontSize: 12), + ), + ), + Expanded( + child: Slider( + value: value, + onChanged: (v) => setState(() => onChanged(v)), + ), + ), + SizedBox( + width: 32, + child: Text( + value.toStringAsFixed(2), + style: const TextStyle(color: Colors.white70, fontSize: 11), + ), + ), + ], + ); + + Widget _panel() { + final source = _source; + return Card( + color: Colors.black54, + child: Padding( + padding: const EdgeInsets.fromLTRB(12, 10, 12, 10), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + children: [ + const SizedBox( + width: 76, + child: Text( + 'Source', + style: TextStyle(color: Colors.white, fontSize: 12), + ), + ), + Expanded( + child: ExampleDropdown<_SourceKind>( + value: _kind, + triggerColor: Colors.white12, + padding: const EdgeInsets.symmetric(horizontal: 8), + isDense: true, + iconSize: 18, + style: const TextStyle(color: Colors.white, fontSize: 12), + items: [ + for (final kind in _SourceKind.values) + DropdownMenuItem(value: kind, child: Text(kind.label)), + ], + onChanged: (kind) { + if (kind != null) _select(kind); + }, + ), + ), + ], + ), + const SizedBox(height: 4), + _slider( + label: 'Roughness', + value: _roughness, + onChanged: (v) { + _roughness = v; + _screenMaterial.roughnessFactor = v; + _cubeMaterial.roughnessFactor = v; + }, + ), + _slider( + label: 'Metallic', + value: _metallic, + onChanged: (v) { + _metallic = v; + _screenMaterial.metallicFactor = v; + _cubeMaterial.metallicFactor = v; + }, + ), + _slider( + label: 'Emissive', + value: _emissive, + onChanged: (v) { + _emissive = v; + _applyEmissive(); + }, + ), + if (_error != null) + Padding( + padding: const EdgeInsets.only(top: 6), + child: Text( + _error!, + style: const TextStyle( + color: Colors.orangeAccent, + fontSize: 11, + ), + ), + ) + else + Padding( + padding: const EdgeInsets.only(top: 6), + child: Text( + source == null + ? 'Starting...' + : '${source.width}x${source.height}, ' + '${source.captureCount} captures, ' + 'last ${source.lastCaptureDuration.inMilliseconds} ms', + style: const TextStyle(color: Colors.white70, fontSize: 11), + ), + ), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + SceneView( + scene, + cameraBuilder: (elapsed) { + final t = elapsed.inMicroseconds / 1e6; + return PerspectiveCamera( + position: vm.Vector3(sin(t * 0.15) * 5.5, 1.6, 5.5), + target: vm.Vector3(0, 0, 0), + ); + }, + onTick: (elapsed, deltaSeconds) => exampleSettings.applyTo(scene), + ), + ExampleOverlay.bottomCenter( + child: SizedBox(width: 360, child: _panel()), + ), + ], + ); + } +} diff --git a/examples/flutter_app/lib/main.dart b/examples/flutter_app/lib/main.dart index f29a38cc..e659615e 100644 --- a/examples/flutter_app/lib/main.dart +++ b/examples/flutter_app/lib/main.dart @@ -38,6 +38,7 @@ import 'example_render_target.dart'; import 'example_settings.dart'; import 'example_shapes.dart'; import 'example_explosion.dart'; +import 'example_external_texture.dart'; import 'example_particles.dart'; import 'example_splats.dart'; import 'example_skybox.dart'; @@ -187,6 +188,7 @@ class _MyAppState extends State { 'Custom Skybox': (context) => const ExampleSkybox(), 'Audio': (context) => const ExampleAudio(), 'Widget Texture': (context) => const ExampleWidgetTexture(), + 'External Texture': (context) => const ExampleExternalTexture(), 'Accessibility': (context) => const ExampleAccessibility(), 'Render Targets': (context) => const ExampleRenderTarget(), 'Physics': (context) => FutureBuilder( diff --git a/examples/flutter_app/pubspec.yaml b/examples/flutter_app/pubspec.yaml index 415b120b..1e909d90 100644 --- a/examples/flutter_app/pubspec.yaml +++ b/examples/flutter_app/pubspec.yaml @@ -35,6 +35,9 @@ dependencies: archive: ^4.0.0 path_provider: ^2.1.0 vector_math: ^2.1.4 + video_player: ^2.13.0 + camera: ^0.12.0+2 + video_player_platform_interface: ^6.9.0 dev_dependencies: flutter_lints: ^5.0.0 @@ -46,6 +49,8 @@ flutter: assets: - assets/little_paris_eiffel_tower.png + # Looping test pattern for the External Texture example. + - assets/testsrc.mp4 # Generated test tones for the Audio example. - assets/sounds/ # Imported scenes are registered as DataAssets by buildScenes (loaded via diff --git a/packages/flutter_scene/CHANGELOG.md b/packages/flutter_scene/CHANGELOG.md index a3efd0a3..bd5d5daf 100644 --- a/packages/flutter_scene/CHANGELOG.md +++ b/packages/flutter_scene/CHANGELOG.md @@ -1,5 +1,6 @@ ## 0.20.1 +* `ExternalTexture` samples a platform texture as a material texture, so video, camera preview, and anything else a plugin registers with Flutter's texture registry can be drawn on scene geometry. Point it at a texture id and assign it to a texture slot; it captures on the frames that sample it. * `ShaderMaterial` owns the vertex stage too. Pass a `vertexShader` (per `MeshVariant`, so skinned and shadow passes can differ) and set uniforms and textures on either stage with `ShaderStage`, so a hand-written shader pair needs no subclassing. * Geometry can declare its own pipeline vertex layout with `setVertexLayout`, and `VertexAttributeDescriptor`/`VertexBufferDescriptor`/`VertexLayoutDescriptor` are public. * Custom vertex attributes work on skinned meshes. diff --git a/packages/flutter_scene/lib/scene.dart b/packages/flutter_scene/lib/scene.dart index e904fe92..eaa7e16e 100644 --- a/packages/flutter_scene/lib/scene.dart +++ b/packages/flutter_scene/lib/scene.dart @@ -191,6 +191,8 @@ export 'src/node.dart' show Node; export 'src/sprite.dart' show Sprite; export 'src/texture_atlas.dart' show TextureAtlas, generateSolidColorAtlasPixels; +export 'src/texture/external_texture.dart' + show ExternalTexture, ExternalTextureSampling, ExternalTextureUpdate; export 'src/texture/texture2d.dart' show Texture2D, TextureSource, TextureSampling, GpuTextureSource; export 'src/texture/texture_registry.dart' show loadTexture; diff --git a/packages/flutter_scene/lib/src/texture/external_texture.dart b/packages/flutter_scene/lib/src/texture/external_texture.dart new file mode 100644 index 00000000..e0b93433 --- /dev/null +++ b/packages/flutter_scene/lib/src/texture/external_texture.dart @@ -0,0 +1,312 @@ +import 'dart:async'; +import 'dart:ui' as ui; + +import 'package:flutter/foundation.dart'; + +import 'package:flutter_scene/src/gpu/gpu.dart' as gpu; +import 'package:flutter_scene/src/texture/texture2d.dart'; + +/// When an [ExternalTexture] re-captures its source. +/// +/// The same shape as `WidgetUpdatePolicy` and `RenderTextureUpdate`, so every +/// live texture in the engine shares one mental model. +/// {@category Assets and loading} +sealed class ExternalTextureUpdate { + const ExternalTextureUpdate._(); + + /// Capture on every frame that draws this source (the default). + static const ExternalTextureUpdate everyFrame = _EveryFrameUpdate(); + + /// Capture at most once per [duration]. Use for a video on a distant + /// billboard, or any source that does not need to be current. + const factory ExternalTextureUpdate.interval(Duration duration) = + _IntervalUpdate; + + /// Capture only when [ExternalTexture.requestCapture] is called. + static const ExternalTextureUpdate manual = _ManualUpdate(); +} + +class _EveryFrameUpdate extends ExternalTextureUpdate { + const _EveryFrameUpdate() : super._(); +} + +class _IntervalUpdate extends ExternalTextureUpdate { + const _IntervalUpdate(this.duration) : super._(); + final Duration duration; +} + +class _ManualUpdate extends ExternalTextureUpdate { + const _ManualUpdate() : super._(); +} + +/// Sampling options used when a material samples an [ExternalTexture]. +/// +/// Defaults to bilinear with clamped edges, matching `RenderTextureSampling`. +/// Streamed frames carry no mip chain, so minification is not filtered; keep +/// the surface reasonably close to the camera or expect aliasing. +/// {@category Assets and loading} +class ExternalTextureSampling { + /// Creates sampling options. + const ExternalTextureSampling({ + this.filter = gpu.MinMagFilter.linear, + this.wrap = gpu.SamplerAddressMode.clampToEdge, + }); + + /// The minification/magnification filter. + final gpu.MinMagFilter filter; + + /// The addressing mode for texture coordinates outside `0..1`, applied to + /// both axes. + final gpu.SamplerAddressMode wrap; + + /// The equivalent sampler description. + @internal + gpu.SamplerOptions toSamplerOptions() => gpu.SamplerOptions( + minFilter: filter, + magFilter: filter, + widthAddressMode: wrap, + heightAddressMode: wrap, + ); +} + +/// A live [TextureSource] fed by a platform texture, so video, camera +/// preview, and any other native producer can be sampled by scene materials. +/// +/// Point it at the texture id a plugin registered with Flutter's texture +/// registry and assign it to a material slot. The frame is captured through +/// the same compositor path the `Texture` widget draws with, so whatever the +/// platform hands over (an Android external OES texture, a biplanar NV12 +/// buffer) arrives here as an ordinary RGBA texture that any material can +/// sample. +/// +/// ```dart +/// final video = ExternalTexture( +/// textureId: id, +/// width: 1920, +/// height: 1080, +/// ); +/// material.baseColorTexture = video; +/// // ... later +/// video.dispose(); +/// ``` +/// +/// [sampledTexture] is null until the first capture completes, and the +/// texture object is replaced on every capture, so read it through the +/// [TextureSource] each frame rather than caching it. Listeners fire after +/// each new frame is published. +/// +/// Captures are driven by drawing rather than by a ticker, so a source +/// nothing samples costs nothing, and a source sampled every frame keeps up +/// on its own. They are throttled to one in flight, so a source producing +/// frames faster than they can be captured skips ahead to the latest instead +/// of queueing. +/// +/// The capture is top-down (`v` of 0 is the top of the source), matching +/// [Texture2D]. +/// +/// Getting a texture id out of a plugin is not always possible. Some plugins +/// render through a platform view instead and expose no id, and some keep the +/// id private. Capture a `WidgetTexture` around the plugin's own preview +/// widget in that case; it costs an extra layout and paint but works for any +/// widget. +/// +/// Platform support follows the engine's ability to resolve a texture id +/// outside a live frame. Android works. The web has no platform textures at +/// all. macOS and iOS currently capture an empty frame, because the engine +/// resolves external textures for a snapshot without an Impeller context and +/// falls back to a Skia path that is inactive under Impeller; a debug build +/// warns when it sees this. Use a `WidgetTexture` around the plugin's preview +/// widget where that matters. +/// {@category Assets and loading} +class ExternalTexture extends ChangeNotifier implements TextureSource { + /// Creates a source capturing [textureId] at [width] x [height] pixels. + /// + /// [textureId] may be null when a plugin has not published one yet; set it + /// once it has. + ExternalTexture({ + int? textureId, + required int width, + required int height, + this.update = ExternalTextureUpdate.everyFrame, + this.sampling = const ExternalTextureSampling(), + }) : assert(width > 0 && height > 0, 'ExternalTexture size must be positive'), + _textureId = textureId, + _width = width, + _height = height; + + int? _textureId; + int _width; + int _height; + + /// When this source re-captures. See [ExternalTextureUpdate]. + ExternalTextureUpdate update; + + /// Sampling options used when a material samples this source. + ExternalTextureSampling sampling; + + gpu.Texture? _texture; + bool _captureInFlight = false; + bool _captureRequested = false; + bool _disposed = false; + DateTime? _lastCaptureStart; + Duration _lastCaptureDuration = Duration.zero; + int _captureCount = 0; + + // Cleared by the first capture that proves this platform cannot wrap a + // snapshot as a GPU texture (the web), so later frames stop trying. + bool _supported = true; + + /// The platform texture id being captured, or null if none is set yet. + int? get textureId => _textureId; + + set textureId(int? value) { + if (value == _textureId) return; + _textureId = value; + requestCapture(); + } + + /// The capture width in pixels. + int get width => _width; + + /// The capture height in pixels. + int get height => _height; + + /// The most recent frame, or null before the first capture completes. + /// + /// The object changes identity on every capture, so re-read it when drawing + /// rather than caching it. + gpu.Texture? get texture => _texture; + + /// The frame to sample this draw, kicking off the next capture when one is + /// due. Capture is driven from here rather than from a ticker, so a source + /// nothing samples costs nothing. + @override + gpu.Texture? get sampledTexture { + if (shouldCapture(DateTime.now())) unawaited(_capture()); + return _texture; + } + + @override + gpu.SamplerOptions get sampledSampler => sampling.toSamplerOptions(); + + /// Wall-clock duration of the last capture, for diagnostics. + Duration get lastCaptureDuration => _lastCaptureDuration; + + /// Total completed captures, for diagnostics. + int get captureCount => _captureCount; + + /// Captures at a new size. Takes effect on the next capture. + void resize(int width, int height) { + assert(width > 0 && height > 0, 'ExternalTexture size must be positive'); + if (width == _width && height == _height) return; + _width = width; + _height = height; + requestCapture(); + } + + /// Captures on the next draw that samples this source. The trigger for + /// [ExternalTextureUpdate.manual]; under the other policies it skips ahead + /// of the schedule. + void requestCapture() => _captureRequested = true; + + /// Whether a capture is due now, consuming a pending [requestCapture]. + @internal + bool shouldCapture(DateTime now) { + if (_disposed || !_supported || _textureId == null) return false; + if (_captureRequested) { + _captureRequested = false; + return true; + } + switch (update) { + case _EveryFrameUpdate(): + return true; + case _IntervalUpdate(:final duration): + final last = _lastCaptureStart; + return last == null || now.difference(last) >= duration; + case _ManualUpdate(): + return false; + } + } + + Future _capture() async { + final textureId = _textureId; + if (textureId == null || _captureInFlight || _disposed) return; + _captureInFlight = true; + final start = DateTime.now(); + _lastCaptureStart = start; + final stopwatch = Stopwatch()..start(); + try { + final width = _width; + final height = _height; + final builder = ui.SceneBuilder() + ..addTexture( + textureId, + width: width.toDouble(), + height: height.toDouble(), + filterQuality: ui.FilterQuality.none, + ); + final scene = builder.build(); + final ui.Image image; + try { + image = await scene.toImage(width, height); + } finally { + scene.dispose(); + } + try { + if (_disposed) return; + // The wrapper shares the image's storage and keeps it alive, so the + // image can be released as soon as it is wrapped. + final wrapped = gpu.Texture.fromImage(gpu.gpuContext, image); + _texture = wrapped; + _lastCaptureDuration = stopwatch.elapsed; + _captureCount++; + notifyListeners(); + if (kDebugMode && _captureCount == 1) { + await _debugWarnIfBlank(image, textureId); + } + } finally { + image.dispose(); + } + } on Exception catch (error) { + // Platform textures and snapshot wrapping are not available everywhere + // (the web has neither). Give up rather than retrying every frame. + _supported = false; + debugPrint( + 'ExternalTexture could not capture texture $textureId and is now ' + 'inactive. $error', + ); + } finally { + _captureInFlight = false; + } + } + + /// Warns once when the first capture came back fully transparent. + /// + /// A platform that cannot resolve a texture id into a snapshot still hands + /// back a well-formed empty image, which is indistinguishable from a source + /// that has not produced a frame yet, so the material just samples nothing + /// forever. Debug builds pay one readback to say so out loud. + Future _debugWarnIfBlank(ui.Image image, int textureId) async { + final bytes = await image.toByteData( + format: ui.ImageByteFormat.rawStraightRgba, + ); + if (bytes == null || _disposed) return; + for (var offset = 3; offset < bytes.lengthInBytes; offset += 4 * 64) { + if (bytes.getUint8(offset) != 0) return; + } + debugPrint( + 'ExternalTexture captured texture $textureId as a fully transparent ' + 'frame. The platform reported no error, so it most likely cannot ' + 'resolve platform textures into snapshots; check the logs for an ' + 'external texture error from the engine. Sample the plugin through a ' + 'WidgetTexture instead if this platform is required.', + ); + } + + @override + void dispose() { + _disposed = true; + _texture = null; + super.dispose(); + } +} diff --git a/packages/flutter_scene/test/external_texture_test.dart b/packages/flutter_scene/test/external_texture_test.dart new file mode 100644 index 00000000..635a7298 --- /dev/null +++ b/packages/flutter_scene/test/external_texture_test.dart @@ -0,0 +1,153 @@ +// Covers ExternalTexture: update-policy resolution (everyFrame/interval/ +// manual + requestCapture + resize forcing), the texture-id setter, sampler +// derivation, and disposal. The capture itself needs a live platform texture +// and a GPU, so it is exercised by the example app rather than here. + +import 'package:flutter_scene/scene.dart'; +import 'package:flutter_scene/src/gpu/gpu.dart' as gpu; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + final t0 = DateTime(2026, 1, 1); + + ExternalTexture make({ + ExternalTextureUpdate update = ExternalTextureUpdate.everyFrame, + ExternalTextureSampling sampling = const ExternalTextureSampling(), + int? textureId = 7, + }) => ExternalTexture( + textureId: textureId, + width: 16, + height: 8, + update: update, + sampling: sampling, + ); + + group('update policy', () { + test('everyFrame captures on every check', () { + final source = make(); + expect(source.shouldCapture(t0), isTrue); + expect(source.shouldCapture(t0), isTrue); + source.dispose(); + }); + + test('manual only captures on request', () { + final source = make(update: ExternalTextureUpdate.manual); + expect(source.shouldCapture(t0), isFalse); + source.requestCapture(); + expect(source.shouldCapture(t0), isTrue); + expect(source.shouldCapture(t0), isFalse); + source.dispose(); + }); + + test('interval waits out the duration', () { + final source = make( + update: const ExternalTextureUpdate.interval(Duration(seconds: 1)), + ); + // Nothing captured yet, so the first check is always due. + expect(source.shouldCapture(t0), isTrue); + source.dispose(); + }); + + test('requestCapture overrides an interval that is not due', () { + final source = make( + update: const ExternalTextureUpdate.interval(Duration(hours: 1)), + ); + source.requestCapture(); + expect(source.shouldCapture(t0), isTrue); + source.dispose(); + }); + + test('resize forces a capture under a manual policy', () { + final source = make(update: ExternalTextureUpdate.manual); + expect(source.shouldCapture(t0), isFalse); + source.resize(32, 16); + expect(source.width, 32); + expect(source.height, 16); + expect(source.shouldCapture(t0), isTrue); + source.dispose(); + }); + + test('resize to the same size does not force a capture', () { + final source = make(update: ExternalTextureUpdate.manual); + source.resize(16, 8); + expect(source.shouldCapture(t0), isFalse); + source.dispose(); + }); + }); + + group('texture id', () { + test('may start null and be set later', () { + final source = make(textureId: null); + expect(source.textureId, isNull); + source.textureId = 3; + expect(source.textureId, 3); + source.dispose(); + }); + }); + + group('texture source contract', () { + test('samples nothing before the first capture', () { + final source = make(); + expect(source.sampledTexture, isNull); + expect(source.texture, isNull); + expect(source.captureCount, 0); + expect(source.lastCaptureDuration, Duration.zero); + source.dispose(); + }); + + test('is usable wherever a TextureSource is', () { + final source = make(); + expect(source, isA()); + source.dispose(); + }); + + test('derives the sampler from its sampling options', () { + final source = make( + sampling: const ExternalTextureSampling( + filter: gpu.MinMagFilter.nearest, + wrap: gpu.SamplerAddressMode.repeat, + ), + ); + final sampler = source.sampledSampler; + expect(sampler.minFilter, gpu.MinMagFilter.nearest); + expect(sampler.magFilter, gpu.MinMagFilter.nearest); + expect(sampler.widthAddressMode, gpu.SamplerAddressMode.repeat); + expect(sampler.heightAddressMode, gpu.SamplerAddressMode.repeat); + source.dispose(); + }); + + test('defaults to bilinear clamped sampling', () { + final source = make(); + final sampler = source.sampledSampler; + expect(sampler.minFilter, gpu.MinMagFilter.linear); + expect(sampler.magFilter, gpu.MinMagFilter.linear); + expect(sampler.widthAddressMode, gpu.SamplerAddressMode.clampToEdge); + source.dispose(); + }); + }); + + group('lifecycle', () { + test('rejects a non-positive size', () { + expect( + () => ExternalTexture(textureId: 1, width: 0, height: 4), + throwsAssertionError, + ); + }); + + test('drops its texture on dispose', () { + final source = make(); + source.dispose(); + expect(source.sampledTexture, isNull); + }); + + test('notifies listeners it is a ChangeNotifier', () { + final source = make(); + var calls = 0; + void listener() => calls++; + source.addListener(listener); + source.removeListener(listener); + expect(calls, 0); + source.dispose(); + }); + }); +}