From 98cedf821c690a8cdcdc01bd95cb6cbad19f40a4 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Thu, 19 Sep 2024 09:14:10 +0800 Subject: [PATCH] update bindings --- .../viewer/ffi/thermion_dart.g.dart | 261 ++++++++++++++---- 1 file changed, 202 insertions(+), 59 deletions(-) diff --git a/thermion_dart/lib/thermion_dart/viewer/ffi/thermion_dart.g.dart b/thermion_dart/lib/thermion_dart/viewer/ffi/thermion_dart.g.dart index 6bdafd91..4aa6fe9f 100644 --- a/thermion_dart/lib/thermion_dart/viewer/ffi/thermion_dart.g.dart +++ b/thermion_dart/lib/thermion_dart/viewer/ffi/thermion_dart.g.dart @@ -16,16 +16,6 @@ external ffi.Pointer make_resource_loader( ffi.Pointer owner, ); -@ffi.Native< - ffi.Pointer Function(ffi.Pointer, ffi.Pointer, - ffi.Pointer, ffi.Pointer)>(isLeaf: true) -external ffi.Pointer create_filament_viewer( - ffi.Pointer context, - ffi.Pointer loader, - ffi.Pointer platform, - ffi.Pointer uberArchivePath, -); - @ffi.Native)>(isLeaf: true) external void destroy_filament_viewer( ffi.Pointer viewer, @@ -221,12 +211,13 @@ external int load_glb( @ffi.Native< EntityId Function(ffi.Pointer, ffi.Pointer, ffi.Size, - ffi.Bool)>(isLeaf: true) + ffi.Bool, ffi.Int)>(isLeaf: true) external int load_glb_from_buffer( ffi.Pointer sceneManager, ffi.Pointer data, int length, bool keepData, + int priority, ); @ffi.Native< @@ -422,6 +413,22 @@ external bool set_morph_animation( double frameLengthInMs, ); +@ffi.Native< + ffi.Pointer Function( + ffi.Pointer, TMaterialKey)>(isLeaf: true) +external ffi.Pointer create_material_instance( + ffi.Pointer sceneManager, + TMaterialKey key, +); + +@ffi.Native< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>(isLeaf: true) +external void destroy_material_instance( + ffi.Pointer sceneManager, + ffi.Pointer instance, +); + @ffi.Native, EntityId)>(isLeaf: true) external void clear_morph_animation( ffi.Pointer sceneManager, @@ -1046,7 +1053,8 @@ external void remove_animation_component( ffi.Pointer, ffi.Int, ffi.Int, - ffi.Pointer)>(isLeaf: true) + ffi.Pointer, + ffi.Bool)>(isLeaf: true) external int create_geometry( ffi.Pointer sceneManager, ffi.Pointer vertices, @@ -1058,7 +1066,8 @@ external int create_geometry( ffi.Pointer indices, int numIndices, int primitiveType, - ffi.Pointer materialPath, + ffi.Pointer materialInstance, + bool keepData, ); @ffi.Native, EntityId)>(isLeaf: true) @@ -1492,6 +1501,8 @@ external void load_glb_ffi( ffi.Size, ffi.Int, ffi.Bool, + ffi.Int, + ffi.Int, ffi.Pointer>)>( isLeaf: true) external void load_glb_from_buffer_ffi( @@ -1500,6 +1511,8 @@ external void load_glb_from_buffer_ffi( int length, int numInstances, bool keepData, + int priority, + int layer, ffi.Pointer> callback, ); @@ -1713,7 +1726,7 @@ external void reset_to_rest_pose_ffi( ffi.Pointer, ffi.Int, ffi.Int, - ffi.Pointer, + ffi.Pointer, ffi.Bool, ffi.Pointer>)>( isLeaf: true) @@ -1728,7 +1741,7 @@ external void create_geometry_ffi( ffi.Pointer indices, int numIndices, int primitiveType, - ffi.Pointer materialPath, + ffi.Pointer materialInstance, bool keepData, ffi.Pointer> callback, ); @@ -1750,6 +1763,180 @@ external void unproject_texture_ffi( ffi.Pointer> callback, ); +final class CameraPtr extends ffi.Opaque {} + +final class TMaterialInstance extends ffi.Opaque {} + +final class TMaterialKey extends ffi.Struct { + @ffi.Bool() + external bool doubleSided; + + @ffi.Bool() + external bool unlit; + + @ffi.Bool() + external bool hasVertexColors; + + @ffi.Bool() + external bool hasBaseColorTexture; + + @ffi.Bool() + external bool hasNormalTexture; + + @ffi.Bool() + external bool hasOcclusionTexture; + + @ffi.Bool() + external bool hasEmissiveTexture; + + @ffi.Bool() + external bool useSpecularGlossiness; + + @ffi.Int() + external int alphaMode; + + @ffi.Bool() + external bool enableDiagnostics; + + external UnnamedUnion1 unnamed; + + @ffi.Uint8() + external int baseColorUV; + + @ffi.Bool() + external bool hasClearCoatTexture; + + @ffi.Uint8() + external int clearCoatUV; + + @ffi.Bool() + external bool hasClearCoatRoughnessTexture; + + @ffi.Uint8() + external int clearCoatRoughnessUV; + + @ffi.Bool() + external bool hasClearCoatNormalTexture; + + @ffi.Uint8() + external int clearCoatNormalUV; + + @ffi.Bool() + external bool hasClearCoat; + + @ffi.Bool() + external bool hasTransmission; + + @ffi.Bool() + external bool hasTextureTransforms; + + @ffi.Uint8() + external int emissiveUV; + + @ffi.Uint8() + external int aoUV; + + @ffi.Uint8() + external int normalUV; + + @ffi.Bool() + external bool hasTransmissionTexture; + + @ffi.Uint8() + external int transmissionUV; + + @ffi.Bool() + external bool hasSheenColorTexture; + + @ffi.Uint8() + external int sheenColorUV; + + @ffi.Bool() + external bool hasSheenRoughnessTexture; + + @ffi.Uint8() + external int sheenRoughnessUV; + + @ffi.Bool() + external bool hasVolumeThicknessTexture; + + @ffi.Uint8() + external int volumeThicknessUV; + + @ffi.Bool() + external bool hasSheen; + + @ffi.Bool() + external bool hasIOR; + + @ffi.Bool() + external bool hasVolume; +} + +final class UnnamedUnion1 extends ffi.Union { + external UnnamedStruct1 unnamed; + + external UnnamedStruct2 unnamed1; +} + +final class UnnamedStruct1 extends ffi.Struct { + @ffi.Bool() + external bool hasMetallicRoughnessTexture; + + @ffi.Uint8() + external int metallicRoughnessUV; +} + +final class UnnamedStruct2 extends ffi.Struct { + @ffi.Bool() + external bool hasSpecularGlossinessTexture; + + @ffi.Uint8() + external int specularGlossinessUV; +} + +final class float4 extends ffi.Struct { + @ffi.Float() + external double x; + + @ffi.Float() + external double y; + + @ffi.Float() + external double z; + + @ffi.Float() + external double w; +} + +final class double4x4 extends ffi.Struct { + @ffi.Array.multi([4]) + external ffi.Array col1; + + @ffi.Array.multi([4]) + external ffi.Array col2; + + @ffi.Array.multi([4]) + external ffi.Array col3; + + @ffi.Array.multi([4]) + external ffi.Array col4; +} + +final class Aabb2 extends ffi.Struct { + @ffi.Float() + external double minX; + + @ffi.Float() + external double minY; + + @ffi.Float() + external double maxX; + + @ffi.Float() + external double maxY; +} + final class ResourceBuffer extends ffi.Struct { external ffi.Pointer data; @@ -1799,50 +1986,6 @@ typedef LoadFilamentResourceIntoOutPointerFunction = ffi.Void Function( typedef DartLoadFilamentResourceIntoOutPointerFunction = void Function( ffi.Pointer uri, ffi.Pointer out); -final class Aabb2 extends ffi.Struct { - @ffi.Float() - external double minX; - - @ffi.Float() - external double minY; - - @ffi.Float() - external double maxX; - - @ffi.Float() - external double maxY; -} - -final class CameraPtr extends ffi.Opaque {} - -final class float4 extends ffi.Struct { - @ffi.Float() - external double x; - - @ffi.Float() - external double y; - - @ffi.Float() - external double z; - - @ffi.Float() - external double w; -} - -final class double4x4 extends ffi.Struct { - @ffi.Array.multi([4]) - external ffi.Array col1; - - @ffi.Array.multi([4]) - external ffi.Array col2; - - @ffi.Array.multi([4]) - external ffi.Array col3; - - @ffi.Array.multi([4]) - external ffi.Array col4; -} - /// This header replicates most of the methods in ThermionDartApi.h. /// It represents the interface for: /// - invoking those methods that must be called on the main Filament engine thread