build_hooks library
Build-hook helpers for flutter_scene.
Call these from your app's hook/build.dart at build time: buildScenes
converts glTF (.glb) source assets into flutter_scene's .fsceneb
package format (loaded by source path with loadScene), and
buildMaterials compiles .fmat custom-material files into a Flutter
GPU shader bundle plus a parameter sidecar. In DataAssets mode, the
outputs are registered with the Flutter asset bundle and can be loaded by
source path through loadScene / loadFmatMaterial.
import 'package:hooks/hooks.dart';
import 'package:flutter_scene/build_hooks.dart';
void main(List<String> args) {
build(args, (config, output) async {
buildScenes(
buildInput: config,
buildOutput: output,
assetMode: SceneAssetMode.dataAssetsRequired,
);
await buildMaterials(
buildInput: config,
buildOutput: output,
materials: ['materials/toon.fmat'],
);
});
}
Enums
- MaterialAssetMode
-
Controls how buildMaterials exposes generated
.fmatshader assets. - SceneAssetMode
-
Controls how buildScenes exposes generated
.fscenebassets.
Functions
-
buildMaterials(
{required BuildInput buildInput, required BuildOutputBuilder buildOutput, List< String> ? materials, String bundleName = 'materials', String discoveryRoot = 'assets/', MaterialAssetMode assetMode = MaterialAssetMode.legacyOnly}) → Future<void> -
Compiles
.fmatcustom-material files into a Flutter GPU shader bundle plus a parameter-metadata sidecar, for use withShaderMaterial/PreprocessedMaterialat runtime. -
buildScenes(
{required BuildInput buildInput, required BuildOutputBuilder buildOutput, List< String> ? inputFilePaths, String outputDirectory = 'build/scenes/', String discoveryRoot = 'assets/', SceneAssetMode assetMode = SceneAssetMode.legacyOnly, bool compressTextures = false}) → void -
Converts glTF (
.glb) source assets to flutter_scene's.fscenebpackage format and writes the result intooutputDirectory(resolved relative toBuildInput.packageRoot).