FBEngineConfig
appId + appKey, 또는 licenseToken으로 만듭니다. licenseToken이 비어 있지 않으면 사용되며 온라인 appId / appKey는 건너뜁니다.
FBEngine
FBEngine.create로 인스턴스 하나를 만듭니다. 프로세스 전역 싱글톤이 아닙니다. externalContext: true 엔진은 한 번에 하나만 processTexture에 바인딩됩니다.
뷰티 / 리셰이프 / 메이크업 / 크로마 / 블러 / clear* / setFilterIntensity는 동기입니다. 필터, 스티커, 배경 이미지, 사진 API는 **Future**를 반환합니다.
피부
setSmoothing, setSmoothingStyle(FBSmoothingStyle), setWhitening, setWhiteningStyle(FBWhiteningStyle), setSharpening, setRosiness, setBeautySkinOnly(bool) — 강도 [0, 1].
리셰이프
setReshape(FBReshape param, double intensity) — [-1.0, 1.0]. Dart 이름: FBReshape.faceThin, faceVShape, … browThickness. 표: 파라미터 열거형.
바디 리셰이프
setBodyReshape(FBBodyReshape param, double intensity) — [0.0, 1.0]. Dart 이름: FBBodyReshape.bodySlim … torsoLong. 먼저 addResourcePack으로 resource_body.fbd를 등록하세요. 파라미터 열거형, 선택 리소스 팩.
메이크업
필터 / 스티커 / VB / 크로마
path와 data는 상호 배타적이며, 정확히 하나가 필요합니다. 3D 스티커와 바디 리셰이프는 선택 리소스 팩을 참고하세요.
사진
externalContext: false가 필요합니다. 그렇지 않으면 StateError를 던집니다. 라이브 전처리 비디오에 사용하지 마세요.
관측
FBStats: fps, avgProcessTimeMs, sessionTimeSeconds.
FBEngineEvent: code, message, eventCode → FBEngineEventCode:
FBException
네이티브 호출이< 0을 반환하면 던져집니다.
기타 유형
FBBitmap—width,height,stride,pixels(RGBA8888 복사)FBLogLevel—trace…critical
네이티브 텍스처 (Dart 아님)
externalContext: true로 create한 뒤, 벤더 SDK GL 스레드에서 호출하세요. 라이브 엔진은 한 번에 하나만 바인딩됩니다. 첫 엔진을 dispose()하기 전에 두 번째 create(externalContext: true)를 하면 예외가 납니다. 정지 엔진(externalContext: false)은 이 슬롯을 쓰지 않습니다.
- iOS:
[FacebetterPlugin processTexture:width:height:] - Android:
FacebetterPlugin.processTexture(textureId, width, height)
0을 반환합니다. 전체 스니펫: 서드파티 연동.
