From 40187987a628fa412504546bddc3a8440da1fe9d Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Sat, 1 Jun 2024 12:40:46 +0800 Subject: [PATCH] add index operator to web PointerPointer extension --- .../compatibility/native/dart_filament.g.dart | 162 ++++++++++++------ .../compatibility/web/allocator.dart | 5 + 2 files changed, 112 insertions(+), 55 deletions(-) diff --git a/dart_filament/lib/dart_filament/compatibility/native/dart_filament.g.dart b/dart_filament/lib/dart_filament/compatibility/native/dart_filament.g.dart index 858c0f2a..2a50bba4 100644 --- a/dart_filament/lib/dart_filament/compatibility/native/dart_filament.g.dart +++ b/dart_filament/lib/dart_filament/compatibility/native/dart_filament.g.dart @@ -460,45 +460,66 @@ external void reset_to_rest_pose( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - ffi.Pointer, - ffi.Int, - ffi.Pointer, - ffi.Pointer>, - ffi.Int, - ffi.Float, - ffi.Bool)>( + ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int, + ffi.Pointer, ffi.Int, ffi.Float)>( symbol: 'add_bone_animation', assetId: 'package:dart_filament/dart_filament.dart') external void add_bone_animation( ffi.Pointer sceneManager, int entity, + int skinIndex, + int boneIndex, ffi.Pointer frameData, int numFrames, - ffi.Pointer boneName, - ffi.Pointer> meshNames, - int numMeshTargets, double frameLengthInMs, - bool isModelSpace, ); @ffi.Native< - ffi.Bool Function( - ffi.Pointer, - EntityId, - ffi.Pointer, - ffi.Pointer, - ffi.Pointer)>( + ffi.Void Function( + ffi.Pointer, EntityId, ffi.Pointer)>( + symbol: 'get_local_transform', + assetId: 'package:dart_filament/dart_filament.dart') +external void get_local_transform( + ffi.Pointer sceneManager, + int entityId, + ffi.Pointer arg2, +); + +@ffi.Native< + ffi.Void Function( + ffi.Pointer, EntityId, ffi.Pointer)>( + symbol: 'get_world_transform', + assetId: 'package:dart_filament/dart_filament.dart') +external void get_world_transform( + ffi.Pointer sceneManager, + int entityId, + ffi.Pointer arg2, +); + +@ffi.Native< + ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int, + ffi.Pointer)>( + symbol: 'get_inverse_bind_matrix', + assetId: 'package:dart_filament/dart_filament.dart') +external void get_inverse_bind_matrix( + ffi.Pointer sceneManager, + int entityId, + int skinIndex, + int boneIndex, + ffi.Pointer arg4, +); + +@ffi.Native< + ffi.Bool Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int, + ffi.Pointer)>( symbol: 'set_bone_transform', assetId: 'package:dart_filament/dart_filament.dart') external bool set_bone_transform( ffi.Pointer sceneManager, int entity, - ffi.Pointer entityName, + int skinIndex, + int boneIndex, ffi.Pointer transform, - ffi.Pointer boneName, ); @ffi.Native< @@ -586,6 +607,35 @@ external void get_bone_names( int skinIndex, ); +@ffi.Native< + EntityId Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int)>( + symbol: 'get_bone', assetId: 'package:dart_filament/dart_filament.dart') +external int get_bone( + ffi.Pointer sceneManager, + int entityId, + int skinIndex, + int boneIndex, +); + +@ffi.Native< + ffi.Bool Function( + ffi.Pointer, EntityId, ffi.Pointer)>( + symbol: 'set_transform', + assetId: 'package:dart_filament/dart_filament.dart') +external bool set_transform( + ffi.Pointer sceneManager, + int entityId, + ffi.Pointer transform, +); + +@ffi.Native, EntityId)>( + symbol: 'update_bone_matrices', + assetId: 'package:dart_filament/dart_filament.dart') +external bool update_bone_matrices( + ffi.Pointer sceneManager, + int entityId, +); + @ffi.Native< ffi.Void Function(ffi.Pointer, EntityId, EntityId, ffi.Pointer, ffi.Int)>( @@ -1060,6 +1110,14 @@ external bool add_animation_component( int entityId, ); +@ffi.Native, EntityId)>( + symbol: 'remove_animation_component', + assetId: 'package:dart_filament/dart_filament.dart') +external void remove_animation_component( + ffi.Pointer sceneManager, + int entityId, +); + @ffi.Native< EntityId Function( ffi.Pointer, @@ -1081,6 +1139,13 @@ external int create_geometry( ffi.Pointer materialPath, ); +@ffi.Native, EntityId)>( + symbol: 'get_parent', assetId: 'package:dart_filament/dart_filament.dart') +external int get_parent( + ffi.Pointer sceneManager, + int child, +); + @ffi.Native, EntityId, EntityId)>( symbol: 'set_parent', assetId: 'package:dart_filament/dart_filament.dart') external void set_parent( @@ -1204,12 +1269,15 @@ external FilamentRenderCallback make_render_callback_fn_pointer( FilamentRenderCallback arg0, ); -@ffi.Native, ffi.Bool)>( +@ffi.Native< + ffi.Void Function(ffi.Pointer, ffi.Bool, + ffi.Pointer>)>( symbol: 'set_rendering_ffi', assetId: 'package:dart_filament/dart_filament.dart') external void set_rendering_ffi( ffi.Pointer viewer, bool rendering, + ffi.Pointer> onComplete, ); @ffi.Native, ffi.Float)>( @@ -1601,21 +1669,13 @@ external void set_morph_target_weights_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - ffi.Pointer, - ffi.Pointer, - ffi.Pointer, + ffi.Void Function(ffi.Pointer, EntityId, ffi.Pointer>)>( - symbol: 'set_bone_transform_ffi', + symbol: 'update_bone_matrices_ffi', assetId: 'package:dart_filament/dart_filament.dart') -external void set_bone_transform_ffi( +external void update_bone_matrices_ffi( ffi.Pointer sceneManager, int asset, - ffi.Pointer entityName, - ffi.Pointer transform, - ffi.Pointer boneName, ffi.Pointer> callback, ); @@ -1623,25 +1683,19 @@ external void set_bone_transform_ffi( ffi.Void Function( ffi.Pointer, EntityId, + ffi.Int, + ffi.Int, ffi.Pointer, - ffi.Int, - ffi.Pointer, - ffi.Pointer>, - ffi.Int, - ffi.Float, - ffi.Bool)>( - symbol: 'add_bone_animation_ffi', + ffi.Pointer>)>( + symbol: 'set_bone_transform_ffi', assetId: 'package:dart_filament/dart_filament.dart') -external void add_bone_animation_ffi( +external void set_bone_transform_ffi( ffi.Pointer sceneManager, int asset, - ffi.Pointer frameData, - int numFrames, - ffi.Pointer boneName, - ffi.Pointer> meshNames, - int numMeshTargets, - double frameLengthInMs, - bool isModelSpace, + int skinIndex, + int boneIndex, + ffi.Pointer transform, + ffi.Pointer> callback, ); @ffi.Native, ffi.Bool)>( @@ -1652,19 +1706,17 @@ external void set_post_processing_ffi( bool enabled, ); -@ffi.Native, EntityId)>( +@ffi.Native< + ffi.Void Function(ffi.Pointer, EntityId, + ffi.Pointer>)>( symbol: 'reset_to_rest_pose_ffi', assetId: 'package:dart_filament/dart_filament.dart') external void reset_to_rest_pose_ffi( ffi.Pointer sceneManager, int entityId, + ffi.Pointer> callback, ); -@ffi.Native( - symbol: 'ios_dummy_ffi', - assetId: 'package:dart_filament/dart_filament.dart') -external void ios_dummy_ffi(); - @ffi.Native< ffi.Void Function( ffi.Pointer, diff --git a/dart_filament/lib/dart_filament/compatibility/web/allocator.dart b/dart_filament/lib/dart_filament/compatibility/web/allocator.dart index 73627471..3cb8d090 100644 --- a/dart_filament/lib/dart_filament/compatibility/web/allocator.dart +++ b/dart_filament/lib/dart_filament/compatibility/web/allocator.dart @@ -126,6 +126,11 @@ extension PointerPointer cast>(), 0, value.cast()); } + + ffi.Pointer operator [](int index) { + return this.elementAt(index).value; + } + void operator []=(int index, ffi.Pointer value) { this.elementAt(index).value = value; }