Retour aux développeurs

< UIKit Flutter />

UTD Video Effects Kit

Filtres beauté en temps réel, étalonnage colorimétrique LUT et effets de visage.

Version 0.10.0Sur pub.dev
Android (minSdk 24)iOS
video_effects_kit.dart
import 'package:utd_video_effects_kit/utd_video_effects_kit.dart';

final fx = VideoEffectsProcessor.create();
final track = await LocalVideoTrack.createCameraTrack(
  CameraCaptureOptions(processor: fx),
);

await fx.setSmoothing(0.6);
await fx.setFilter('teal_orange', intensity: 0.8);
await fx.setBackgroundBlur(0.4);
await fx.setEyeColor('#3366CC', opacity: 0.6);
await fx.setLipstick('#CC2244');

// Or use the built-in UI:
VideoEffectsSheet.show(context, processor: fx);

46+

Filtres LUT

9

Accessoires

6

Looks maquillage

GPU

Temps réel

< utd_video_effects_kit />

Fonctionnalités clés

Effets vidéo et filtres beauté en temps réel pour les applications Flutter basées sur l'UTD Stream Engine. Les effets s'exécutent via un TrackProcessor sur des pipelines GPU natifs (Android/iOS) et regroupent 46+ filtres colorimétriques LUT, lissage/éclaircissement de la peau, flou d'arrière-plan et effets de visage propulsés par MediaPipe (couleur des yeux, maquillage, accessoires). Inclut une UI VideoEffectsSheet intégrée avec les onglets Beauty/Filters/Makeup/Accessories.

46+ filtres colorimétriques LUT (looks sélectionnés + maison)

Effets beauté : lissage de la peau (séparation de fréquences), éclaircissement, flou d'arrière-plan

Effets de visage via MediaPipe : couleur des yeux, maquillage (rouge à lèvres/fard à paupières/blush), 9 accessoires

Post-traitement colorimétrique : glow/bloom (Orton), grain de film, vignettage

Retouche de la peau : détail de texture, clarté, éclaircissement sélectif

Remodelage du visage : déformation pilotée par les points de repère (agrandir les yeux, affiner le visage, affiner le nez, …)

UI VideoEffectsSheet prête à l'emploi (onglets Beauty/Filters/Makeup/Accessories)

Looks de maquillage sélectionnés et presets de teint de peau

Gestion adaptative du budget d'images selon les paliers de performance des appareils

Attachement sans glue du processeur vidéo au LocalVideoTrack

< utd_video_effects_kit />

Commencer

1

Installer

pubspec.yaml
dependencies:
  utd_video_effects_kit: ^0.10.0
2

Voir sur pub.dev

Filtres beauté en temps réel, étalonnage colorimétrique LUT et effets de visage.

< utd_video_effects_kit />

Référence de l'API

Main processor

The single public entry point: a video processor that applies GPU beauty/filter effects natively.

VideoEffectsProcessorclass
abstract class VideoEffectsProcessor extends TrackProcessor<VideoProcessorOptions>

Engine-compatible video processor that applies GPU beauty/filter effects natively and exposes the result via processedTrack. Has no per-frame process() hook; pixel work runs natively.

VideoEffectsProcessor.createconstructor
factory VideoEffectsProcessor.create({EffectsState initial = const EffectsState()})

Builds the default native-backed implementation. The only way to construct a processor.

Paramètres

  • initialEffectsStatePar défaut = const EffectsState()

    Initial effect settings the processor starts with.

Retourne: VideoEffectsProcessorA native-backed processor instance.

stategetter
ValueListenable<EffectsState> get state

Live, read-only snapshot of current effect settings. Bind UI to this.

Retourne: ValueListenable<EffectsState>Listenable of the current immutable EffectsState.

isSupportedgetter
bool get isSupported

Whether this device/platform can actually process pixels. False means processedTrack is a passthrough (original camera frames flow unmodified).

Retourne: boolTrue if native pixel processing is available.

disposemethod
void dispose()

Final teardown: releases the effect-state listenable. Call when the live session ends. Distinct from the engine's per-capture destroy().

Retourne: voidNothing.

Adaptive performance & telemetry

Frame-budget signals and on-device measurement/parity harness.

budgetExceededgetter
ValueListenable<bool> get budgetExceeded

True while the native pipeline sheds work to hold the frame budget (degrade level > 0). Emits only on change. Always false on unsupported platforms.

Retourne: ValueListenable<bool>Listenable performance-mode flag.

degradeLevelgetter
ValueListenable<int> get degradeLevel

Current adaptive frame-budget degrade level: 0 (full quality) .. 4 (max shedding). 0 on unsupported platforms.

Retourne: ValueListenable<int>Listenable degrade level 0..4.

deviceTiergetter
ValueListenable<int> get deviceTier

Static device performance tier classified natively at attach: 0 Budget, 1 Low, 2 Mid, 3 Flagship. 3 on unsupported platforms or before first attach.

Retourne: ValueListenable<int>Listenable device tier 0..3.

perfStatsmethodasync
Future<EffectsPerfStats?> perfStats({bool reset = false})

Pulls a snapshot of native frame-budget telemetry (over-budget rate + frame-time distribution). Returns null on web/unsupported or with no native session.

Paramètres

  • resetboolPar défaut = false

    Clear counters after reading so the next call measures a fresh window.

Retourne: Future<EffectsPerfStats?>Telemetry snapshot, or null if unavailable.

renderTestFramemethodasync
Future<EffectsTestFrame?> renderTestFrame(Uint8List rgba, {required int width, required int height})

Runs an RGBA8888 image through the native COLOR grade with current settings and returns the processed RGBA8888 (CPU-vs-GPU parity harness). Call with effects disabled. Returns null if unavailable.

Paramètres

  • rgbaUint8Listrequis

    RGBA8888 row-major input, width*height*4 bytes.

  • widthintrequis

    Input image width in pixels.

  • heightintrequis

    Input image height in pixels.

Retourne: Future<EffectsTestFrame?>Graded output frame, or null if unavailable.

Beauty & color setters

Skin smoothing, whitening, LUT filters, and the color-post (glow/grain/vignette) tail.

setEnabledmethodasync
Future<void> setEnabled(bool enabled)

Master on/off switch. When off the native pipeline is a 1:1 passthrough.

Paramètres

  • enabledboolrequis

    Whether effects are applied.

Retourne: Future<void>Completes when applied.

setSmoothingmethodasync
Future<void> setSmoothing(double amount)

Skin-smoothing strength, 0.0..1.0 (frequency-separation / bilateral).

Paramètres

  • amountdoublerequis

    Smoothing strength, 0.0..1.0 (0 = off).

Retourne: Future<void>Completes when applied.

setWhiteningmethodasync
Future<void> setWhitening(double amount)

Whitening / brightness strength, 0.0..1.0.

Paramètres

  • amountdoublerequis

    Whitening strength, 0.0..1.0 (0 = off).

Retourne: Future<void>Completes when applied.

setFiltermethodasync
Future<void> setFilter(String? lutAssetKey, {double intensity = 1.0})

Apply a LUT color filter by key (null clears it). See VideoEffectsFilters.

Paramètres

  • lutAssetKeyString?requis

    Filter key (e.g. 'warm'), or null to clear.

  • intensitydoublePar défaut = 1.0

    Blend amount, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setBackgroundBlurmethodasync
Future<void> setBackgroundBlur(double amount)

Background-blur strength, 0.0..1.0 (selfie segmentation + blur).

Paramètres

  • amountdoublerequis

    Blur strength, 0.0..1.0 (0 = off).

Retourne: Future<void>Completes when applied.

setGlowmethodasync
Future<void> setGlow(double amount)

Soft glow / bloom (Orton) strength, 0.0..1.0. The highest-impact beauty color post effect.

Paramètres

  • amountdoublerequis

    Glow strength, 0.0..1.0 (0 = off).

Retourne: Future<void>Completes when applied.

setGrainmethodasync
Future<void> setGrain(double amount)

Film-grain amount, 0.0..1.0 (animated per frame).

Paramètres

  • amountdoublerequis

    Grain amount, 0.0..1.0 (0 = off).

Retourne: Future<void>Completes when applied.

setVignettemethodasync
Future<void> setVignette(double amount)

Vignette strength, 0.0..1.0 (darkens frame corners).

Paramètres

  • amountdoublerequis

    Vignette strength, 0.0..1.0 (0 = off).

Retourne: Future<void>Completes when applied.

setTextureDetailmethodasync
Future<void> setTextureDetail(double amount)

Pore/texture retained by frequency-separation smoothing, 0.0..1.0 (0 = plastic, 1 = full texture). Only affects skin when smoothing > 0.

Paramètres

  • amountdoublerequis

    Texture retention, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setClaritymethodasync
Future<void> setClarity(double amount)

Local-contrast clarity, signed -1.0..1.0. Positive = punchy/pop, negative = soft dreamy skin. 0 = off.

Paramètres

  • amountdoublerequis

    Signed clarity, -1.0..1.0.

Retourne: Future<void>Completes when applied.

Skin retouch & tone

Selective brightening (teeth/eye/under-eye) and skin-tone presets/shift.

setTeethWhiteningmethodasync
Future<void> setTeethWhitening(double amount)

Teeth-whitening strength, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Teeth-whitening strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setEyeBrighteningmethodasync
Future<void> setEyeBrightening(double amount)

Eye-white (sclera) brightening, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Eye-white brightening strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setUnderEyeBrighteningmethodasync
Future<void> setUnderEyeBrightening(double amount)

Under-eye (tear-trough) brightening, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Under-eye brightening strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setSkinColormethodasync
Future<void> setSkinColor(String? presetKey)

Apply a skin-tone preset by key (null clears it). See VideoEffectsSkinTones.

Paramètres

  • presetKeyString?requis

    Skin-tone preset key (e.g. 'nuanbai'), or null to clear.

Retourne: Future<void>Completes when applied.

setSkinToneShiftmethodasync
Future<void> setSkinToneShift(double amount)

Skin-tone shift, signed -1.0..1.0: warms (+) or cools (-) skin via hue rotation gated by the adaptive skin mask. 0 = off.

Paramètres

  • amountdoublerequis

    Signed skin-tone shift, -1.0..1.0.

Retourne: Future<void>Completes when applied.

setSegmentationSkinmethodasync
Future<void> setSegmentationSkin(bool enabled)

Use multiclass segmentation to refine the skin region so skin effects apply to actual skin. Loads a larger/slower model. Default off.

Paramètres

  • enabledboolrequis

    Whether segmentation-refined skin masking is on.

Retourne: Future<void>Completes when applied.

Makeup, sculpt & reshape setters

Landmark-driven makeup recolor, dodge/burn sculpt, and liquify reshape.

setEyeColormethodasync
Future<void> setEyeColor(String? hex, {double opacity = 0.5})

Recolor the iris with hex (e.g. '#3366CC', null clears it).

Paramètres

  • hexString?requis

    Iris color hex, or null to clear.

  • opacitydoublePar défaut = 0.5

    Recolor strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setLipstickmethodasync
Future<void> setLipstick(String? hex, {double opacity = 0.6, String finish = 'satin', String style = 'full'})

Apply lipstick in hex (null clears it). finish: matte/satin/gloss. style: full/ombre/blurred.

Paramètres

  • hexString?requis

    Lipstick color hex, or null to clear.

  • opacitydoublePar défaut = 0.6

    Strength, 0.0..1.0.

  • finishStringPar défaut = 'satin'

    matte, satin, or gloss.

  • styleStringPar défaut = 'full'

    full, ombre, or blurred.

Retourne: Future<void>Completes when applied.

setEyeshadowmethodasync
Future<void> setEyeshadow(String? hex, {double opacity = 0.45, String? color2, double shimmer = 0})

Apply eyeshadow in hex (null clears it). color2 gives a two-tone gradient; shimmer adds sparkle.

Paramètres

  • hexString?requis

    Eyeshadow color hex, or null to clear.

  • opacitydoublePar défaut = 0.45

    Strength, 0.0..1.0.

  • color2String?Par défaut = null

    Second hex for a two-tone (darker lash-line) gradient.

  • shimmerdoublePar défaut = 0

    Sparkle amount, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setBlushmethodasync
Future<void> setBlush(String? hex, {double opacity = 0.4})

Apply blush in hex (null clears it).

Paramètres

  • hexString?requis

    Blush color hex, or null to clear.

  • opacitydoublePar défaut = 0.4

    Strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setEyelinermethodasync
Future<void> setEyeliner(String? hex, {double opacity = 0.7, String style = 'classic'})

Apply eyeliner in hex (null clears it). style: classic or wing (adds an outer flick).

Paramètres

  • hexString?requis

    Eyeliner color hex, or null to clear.

  • opacitydoublePar défaut = 0.7

    Strength, 0.0..1.0.

  • styleStringPar défaut = 'classic'

    classic or wing.

Retourne: Future<void>Completes when applied.

setMakeupLookmethodasync
Future<void> setMakeupLook(MakeupLook? look)

Apply a coordinated MakeupLook in one call (lipstick + finish, eyeshadow, blush, eye color). Null clears all makeup regions. See VideoEffectsMakeup.looks.

Paramètres

  • lookMakeupLook?requis

    The look to apply, or null to clear all makeup.

Retourne: Future<void>Completes when applied.

setContourmethodasync
Future<void> setContour(double amount)

Contour (cool-gray cheek/nose burn) strength, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Contour strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setHighlightmethodasync
Future<void> setHighlight(double amount)

Highlight (warm-white dodge on high points) strength, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Highlight strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setEyeEnlargemethodasync
Future<void> setEyeEnlarge(double amount)

Eye-enlarge reshape strength, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Eye-enlarge strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setFaceSlimmethodasync
Future<void> setFaceSlim(double amount)

Face-slim reshape strength, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Face-slim strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setNoseNarrowmethodasync
Future<void> setNoseNarrow(double amount)

Nose-narrow reshape strength, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Nose-narrow strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setLipPlumpmethodasync
Future<void> setLipPlump(double amount)

Lip-plump reshape strength, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Lip-plump strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

setChinShortenmethodasync
Future<void> setChinShorten(double amount)

Chin-shorten reshape strength, 0.0..1.0 (0 = off).

Paramètres

  • amountdoublerequis

    Chin-shorten strength, 0.0..1.0.

Retourne: Future<void>Completes when applied.

Accessories setters

Toggle landmark-positioned PNG overlays. One toggle per accessory.

setGlassesmethodasync
Future<void> setGlasses(bool enabled)

Toggle the glasses accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the glasses overlay is shown.

Retourne: Future<void>Completes when applied.

setSunglassesmethodasync
Future<void> setSunglasses(bool enabled)

Toggle the sunglasses accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the sunglasses overlay is shown.

Retourne: Future<void>Completes when applied.

setCrownmethodasync
Future<void> setCrown(bool enabled)

Toggle the crown accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the crown overlay is shown.

Retourne: Future<void>Completes when applied.

setCatEarsmethodasync
Future<void> setCatEars(bool enabled)

Toggle the cat-ears accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the cat-ears overlay is shown.

Retourne: Future<void>Completes when applied.

setFlowerCrownmethodasync
Future<void> setFlowerCrown(bool enabled)

Toggle the flower-crown accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the flower-crown overlay is shown.

Retourne: Future<void>Completes when applied.

setPartyHatmethodasync
Future<void> setPartyHat(bool enabled)

Toggle the party-hat accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the party-hat overlay is shown.

Retourne: Future<void>Completes when applied.

setBunnyEarsmethodasync
Future<void> setBunnyEars(bool enabled)

Toggle the bunny-ears accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the bunny-ears overlay is shown.

Retourne: Future<void>Completes when applied.

setMustachemethodasync
Future<void> setMustache(bool enabled)

Toggle the mustache accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the mustache overlay is shown.

Retourne: Future<void>Completes when applied.

setHalomethodasync
Future<void> setHalo(bool enabled)

Toggle the halo accessory overlay.

Paramètres

  • enabledboolrequis

    Whether the halo overlay is shown.

Retourne: Future<void>Completes when applied.

Built-in UI

Drop-in bottom sheet that drives a processor with Beauty/Filters/Makeup/Accessories tabs.

VideoEffectsSheetclass
class VideoEffectsSheet

Self-contained beauty & filters bottom sheet (Beauty / Filters / Makeup / Accessories tabs) that drives a VideoEffectsProcessor. Dark over-video styling; accent from theme primary; auto Arabic labels.

VideoEffectsSheet.showmethodasync
static Future<void> show(BuildContext context, {required VideoEffectsProcessor processor, double heightFactor = defaultHeightFactor})

Opens the beauty & filters sheet for processor. Turns the master switch on (idempotent), then shows a modal bottom sheet. Returns when dismissed.

Paramètres

  • contextBuildContextrequis

    Build context to show the modal in.

  • processorVideoEffectsProcessorrequis

    The processor the sheet controls.

  • heightFactordoublePar défaut = defaultHeightFactor (0.25)

    Sheet height as a fraction of screen height.

Retourne: Future<void>Completes when the sheet is dismissed.

defaultHeightFactorproperty
static const double defaultHeightFactor = 0.25

Default sheet height as a fraction of the screen height (1/4).

Retourne: double0.25

Catalogs (filters, skin tones, accessories, makeup)

Pure-data catalogs of bundled LUT filters, skin-tone presets, accessories, and makeup shades/looks.

VideoEffectsFiltersclass
class VideoEffectsFilters

Catalog of bundled LUT color filters (45+ entries). Static-only (private constructor).

VideoEffectsFilters.allproperty
static const List<VideoEffectFilter> all

All bundled LUT filters, in display order (fresh, night, autumn, clean_girl, teal_orange, etc.).

Retourne: List<VideoEffectFilter>Bundled filter catalog.

VideoEffectsFilters.assetFormethod
static String? assetFor(String? key)

The LUT asset path for a filter key, or null for an unknown/cleared key.

Paramètres

  • keyString?requis

    Filter key to resolve.

Retourne: String?Asset path or null.

VideoEffectsFilters.previewFormethod
static String previewFor(String? key)

Preview thumbnail asset path for a filter key (portrait with filter applied). Null gives the unfiltered 'none' preview.

Paramètres

  • keyString?requis

    Filter key, or null for the 'none' preview.

Retourne: StringPreview asset path.

VideoEffectsFilters.skinPreviewFormethod
static String skinPreviewFor(String? key)

Preview thumbnail asset path for a skin-tone preset (same portrait, skin LUT grade).

Paramètres

  • keyString?requis

    Skin-tone key, or null for the 'none' preview.

Retourne: StringPreview asset path.

VideoEffectFilterclass
class VideoEffectFilter { const VideoEffectFilter(this.key, this.label, this.asset); }

A bundled LUT color filter: stable key, human label, and 512x512 LUT PNG asset path.

Paramètres

  • keyStringrequis

    Stable key passed to setFilter, e.g. 'fresh'.

  • labelStringrequis

    Human-readable label, e.g. 'Fresh'.

  • assetStringrequis

    Packaged asset path of the LUT PNG.

VideoEffectsSkinTonesclass
class VideoEffectsSkinTones

Catalog of bundled skin-tone presets (Warm/Cool/Pink/Wheat/Tan). Static-only. Has all (List<VideoEffectSkinTone>) and byKey(String?).

VideoEffectsSkinTones.byKeymethod
static VideoEffectSkinTone? byKey(String? key)

Look up a skin-tone preset by key, or null for unknown/null.

Paramètres

  • keyString?requis

    Skin-tone preset key.

Retourne: VideoEffectSkinTone?Preset or null.

VideoEffectsAccessoriesclass
class VideoEffectsAccessories

Catalog of bundled PNG accessories (glasses, crown, catEars, sunglasses, flowerCrown, partyHat, bunnyEars, mustache, halo). Static-only.

VideoEffectsAccessories.allproperty
static const List<VideoEffectAccessory> all

All bundled accessories, each with a key matching the EffectsState toggle.

Retourne: List<VideoEffectAccessory>Accessory catalog.

VideoEffectsAccessories.assetFormethod
static String? assetFor(String? key)

The PNG asset path for an accessory key, or null for an unknown key.

Paramètres

  • keyString?requis

    Accessory key to resolve.

Retourne: String?Asset path or null.

VideoEffectsMakeupclass
class VideoEffectsMakeup

Curated makeup shades + full looks. Static-only. Exposes lipstick, eyeshadow, blush, eyeColor (List<MakeupShade>) and looks (List<MakeupLook>).

VideoEffectsMakeup.looksproperty
static const List<MakeupLook> looks

Coordinated full looks (lip + eyeshadow + blush [+ eye color]): natural, glam, soft_rose, bold_berry, sunkissed, smoky_night.

Retourne: List<MakeupLook>Curated full looks.

VideoEffectsMakeup.lookByKeymethod
static MakeupLook? lookByKey(String? key)

Look up a coordinated MakeupLook by key, or null for unknown/null.

Paramètres

  • keyString?requis

    Look key.

Retourne: MakeupLook?Look or null.

Models & data types

Immutable state snapshot, catalog item types, and telemetry/parity result types.

EffectsStateclass
class EffectsState { const EffectsState({bool enabled = false, double smoothing = 0, ... bool halo = false}); }

Immutable snapshot of active video-effect settings (~50 fields: enabled, smoothing, whitening, filterKey/filterIntensity, makeup hex+opacity, sculpt/reshape scalars, accessory bools). All intensities normalized 0.0..1.0.

Paramètres

  • enabledboolPar défaut = false

    Master switch.

  • smoothingdoublePar défaut = 0

    Skin-smoothing strength.

  • filterKeyString?Par défaut = null

    Active LUT filter key, or null.

  • filterIntensitydoublePar défaut = 1.0

    Blend amount for filterKey.

  • Plus whitening, glow, grain, vignette, clarity, makeup hex/opacity fields, reshape/sculpt scalars, and accessory bools.

copyWithmethod
EffectsState copyWith({bool? enabled, double? smoothing, Object? filterKey = _unset, ...})

Returns a copy with the given fields changed. Nullable fields use an _unset sentinel so passing null clears (vs leaving unchanged).

Paramètres

  • Any subset of EffectsState fields to override.

Retourne: EffectsStateA new modified state.

toMapmethod
Map<String, dynamic> toMap()

Serialized form sent to the native pipeline over the method channel.

Retourne: Map<String, dynamic>All effect fields as a map.

VideoEffectSkinToneclass
const VideoEffectSkinTone(this.key, this.label, this.skinAsset, this.bgAsset)

A skin-tone preset (dual-LUT grade): a skin LUT over skin regions plus a background LUT elsewhere.

Paramètres

  • keyStringrequis

    Stable preset key, e.g. 'nuanbai'.

  • labelStringrequis

    Human label, e.g. 'Warm'.

  • skinAssetStringrequis

    Skin-region LUT asset path.

  • bgAssetStringrequis

    Background LUT asset path.

VideoEffectAccessoryclass
const VideoEffectAccessory(this.key, this.label, this.asset)

A landmark-positioned PNG accessory overlay.

Paramètres

  • keyStringrequis

    Stable key matching the EffectsState toggle, e.g. 'glasses'.

  • labelStringrequis

    Human-readable label.

  • assetStringrequis

    Packaged transparent PNG asset path.

MakeupShadeclass
const MakeupShade(this.key, this.label, this.hex, this.opacity)

A curated makeup shade: a hex color plus recommended opacity for one region. Feed hex+opacity into the matching setter.

Paramètres

  • keyStringrequis

    Stable key, e.g. 'classic_red'.

  • labelStringrequis

    Human label, e.g. 'Classic Red'.

  • hexStringrequis

    #RRGGBB color.

  • opacitydoublerequis

    Recommended strength, 0.0..1.0.

MakeupLookclass
const MakeupLook(this.key, this.label, {String? lipstick, double lipstickOpacity = 0.6, String lipFinish = 'satin', String? eyeshadow, ...})

A full makeup look bundling coordinated shades across regions. Apply with setMakeupLook. Has a preview getter for the thumbnail asset path.

Paramètres

  • keyStringrequis

    Stable look key.

  • labelStringrequis

    Human label.

  • lipstickString?Par défaut = null

    Lipstick hex.

  • lipFinishStringPar défaut = 'satin'

    matte, satin, or gloss.

  • eyeshadowString?Par défaut = null

    Eyeshadow hex (plus blush, eyeColor, and per-region opacities).

EffectsPerfStatsclass
class EffectsPerfStats { const EffectsPerfStats({required int frames, ... required double frameMs}); }

Immutable snapshot of native frame-budget telemetry: frame counts, over-budget/over-frame counts, raise/lower events, per-level frames, mean/p50/p95/p99/max ms, histogram bins, device tier, and budget/frame thresholds.

Paramètres

  • framesintrequis

    Total frames timed since last reset.

  • overBudgetintrequis

    Frames slower than budgetMs.

  • Plus overFrame, raiseEvents, lowerEvents, levelFrames, meanMs, maxMs, p50/p95/p99Ms, binMs, bins, tier, budgetMs, frameMs.

overBudgetRategetter
double get overBudgetRate

Fraction of frames slower than budgetMs (0.0..1.0). The primary perf signal.

Retourne: doubleOver-budget fraction.

overFrameRategetter
double get overFrameRate

Fraction of frames slower than frameMs — i.e. frames that actually dropped.

Retourne: doubleDropped-frame fraction.

EffectsPerfStats.fromMapmethod
static EffectsPerfStats? fromMap(Map<String, dynamic>? m)

Builds a snapshot from the native channel map; null for a null/empty map.

Paramètres

  • mMap<String, dynamic>?requis

    Native telemetry map.

Retourne: EffectsPerfStats?Snapshot or null.

EffectsTestFrameclass
const EffectsTestFrame({required Uint8List rgba, required int width, required int height})

Result of renderTestFrame: an RGBA8888 image produced by running a known input through the native color grade with current settings.

Paramètres

  • rgbaUint8Listrequis

    Graded pixels, RGBA8888 row-major, alpha opaque.

  • widthintrequis

    Image width in pixels.

  • heightintrequis

    Image height in pixels.

FrameDiffclass
class FrameDiff { const FrameDiff({required int maxDelta, required double meanDelta, required int pixels, required int diffPixels, required int threshold}); }

A per-channel difference summary between two RGBA8888 buffers (pure Dart, offline-testable). Has diffFraction getter and a static compare().

Paramètres

  • maxDeltaintrequis

    Largest absolute per-channel delta (0..255).

  • meanDeltadoublerequis

    Mean absolute per-channel delta over RGB.

  • pixelsintrequis

    Total pixels compared.

  • diffPixelsintrequis

    Pixels differing by more than threshold.

  • thresholdintrequis

    Per-channel delta counted as different.

FrameDiff.comparemethod
static FrameDiff compare(Uint8List a, Uint8List b, {int threshold = 2})

Compares two RGBA8888 buffers on RGB channels (alpha ignored). Returns a zeroed diff when sizes mismatch or are empty.

Paramètres

  • aUint8Listrequis

    First RGBA8888 buffer.

  • bUint8Listrequis

    Second RGBA8888 buffer.

  • thresholdintPar défaut = 2

    Per-channel delta above which a pixel counts as different.

Retourne: FrameDiffThe difference summary.

Prêt à construire avec UTD ?

Créez votre compte, alimentez votre portefeuille principal et activez les services dont vous avez besoin.