From ce2dc9b1cb2a8d61758eeef10604e1c2c4a6f35a Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Tue, 1 Jul 2025 13:11:24 +0800 Subject: [PATCH] update FFI/JS bindings --- .../src/bindings/src/thermion_dart_ffi.g.dart | 112 ++++++++- .../src/thermion_dart_js_interop.g.dart | 214 +++++++++++++++--- 2 files changed, 290 insertions(+), 36 deletions(-) diff --git a/thermion_dart/lib/src/bindings/src/thermion_dart_ffi.g.dart b/thermion_dart/lib/src/bindings/src/thermion_dart_ffi.g.dart index 3bd7302d..1745b1f1 100644 --- a/thermion_dart/lib/src/bindings/src/thermion_dart_ffi.g.dart +++ b/thermion_dart/lib/src/bindings/src/thermion_dart_ffi.g.dart @@ -25,6 +25,11 @@ external ffi.Pointer Material_createInstance( ffi.Pointer tMaterial, ); +@ffi.Native)>(isLeaf: true) +external int Material_getFeatureLevel( + ffi.Pointer tMaterial, +); + @ffi.Native Function(ffi.Pointer)>(isLeaf: true) external ffi.Pointer Material_createImageMaterial( ffi.Pointer tEngine, @@ -40,6 +45,11 @@ external ffi.Pointer Material_createGizmoMaterial( ffi.Pointer tEngine, ); +@ffi.Native Function(ffi.Pointer)>(isLeaf: true) +external ffi.Pointer Material_createOutlineMaterial( + ffi.Pointer tEngine, +); + @ffi.Native, ffi.Pointer)>( isLeaf: true) external bool Material_hasParameter( @@ -572,6 +582,13 @@ external void View_pick( PickCallback callback, ); +@ffi.Native, ffi.Pointer)>( + isLeaf: true) +external void View_setName( + ffi.Pointer tView, + ffi.Pointer name, +); + @ffi.Native Function()>(isLeaf: true) external ffi.Pointer NameComponentManager_create(); @@ -1317,7 +1334,10 @@ external void Renderer_renderStandaloneView( @ffi.Native< ffi.Void Function( ffi.Pointer, - ffi.Pointer, + ffi.Uint32, + ffi.Uint32, + ffi.Uint32, + ffi.Uint32, ffi.Pointer, ffi.UnsignedInt, ffi.UnsignedInt, @@ -1325,7 +1345,10 @@ external void Renderer_renderStandaloneView( ffi.Size)>(isLeaf: true) external void Renderer_readPixels( ffi.Pointer tRenderer, - ffi.Pointer tView, + int width, + int height, + int xOffset, + int yOffset, ffi.Pointer tRenderTarget, int tPixelBufferFormat, int tPixelDataType, @@ -1344,6 +1367,37 @@ external void Renderer_setFrameInterval( int interval, ); +@ffi.Native< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(isLeaf: true) +external ffi.Pointer OverlayManager_create( + ffi.Pointer tEngine, + ffi.Pointer tRenderer, + ffi.Pointer tView, + ffi.Pointer tScene, + ffi.Pointer tRenderTarget, +); + +@ffi.Native< + ffi.Void Function(ffi.Pointer, EntityId, + ffi.Pointer)>(isLeaf: true) +external void OverlayManager_addComponent( + ffi.Pointer tOverlayManager, + int entityId, + ffi.Pointer tMaterialInstance, +); + +@ffi.Native, EntityId)>( + isLeaf: true) +external void OverlayManager_removeComponent( + ffi.Pointer tOverlayManager, + int entityId, +); + @ffi.Native< ffi.Pointer Function( ffi.Pointer, ffi.Pointer)>(isLeaf: true) @@ -1391,12 +1445,19 @@ external void RenderTicker_setRenderable( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Pointer, - ffi.Pointer)>(isLeaf: true) -external void RenderTicker_foo( + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>(isLeaf: true) +external void RenderTicker_removeSwapChain( ffi.Pointer tRenderTicker, - ffi.Pointer tOverlayView, - ffi.Pointer tMaterialInstance, + ffi.Pointer swapChain, +); + +@ffi.Native< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>(isLeaf: true) +external void RenderTicker_setOverlayManager( + ffi.Pointer tRenderTicker, + ffi.Pointer tOverlayManager, ); @ffi.Native< @@ -1410,6 +1471,11 @@ external ffi.Pointer Engine_create( bool disableHandleUseAfterFreeCheck, ); +@ffi.Native)>(isLeaf: true) +external int Engine_getSupportedFeatureLevel( + ffi.Pointer tEngine, +); + @ffi.Native)>(isLeaf: true) external void Engine_destroy( ffi.Pointer tEngine, @@ -2109,7 +2175,10 @@ external void Renderer_renderStandaloneViewRenderThread( @ffi.Native< ffi.Void Function( ffi.Pointer, - ffi.Pointer, + ffi.Uint32, + ffi.Uint32, + ffi.Uint32, + ffi.Uint32, ffi.Pointer, ffi.UnsignedInt, ffi.UnsignedInt, @@ -2119,7 +2188,10 @@ external void Renderer_renderStandaloneViewRenderThread( VoidCallback)>(isLeaf: true) external void Renderer_readPixelsRenderThread( ffi.Pointer tRenderer, - ffi.Pointer tView, + int width, + int height, + int xOffset, + int yOffset, ffi.Pointer tRenderTarget, int tPixelBufferFormat, int tPixelDataType, @@ -2169,6 +2241,19 @@ external void Material_createGizmoMaterialRenderThread( onComplete, ); +@ffi.Native< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer< + ffi + .NativeFunction)>>)>( + isLeaf: true) +external void Material_createOutlineMaterialRenderThread( + ffi.Pointer tEngine, + ffi.Pointer)>> + onComplete, +); + @ffi.Native< ffi.Void Function( ffi.Pointer, @@ -3605,6 +3690,8 @@ final class TColorGrading extends ffi.Opaque {} final class TKtx1Bundle extends ffi.Opaque {} +final class TOverlayManager extends ffi.Opaque {} + final class double3 extends ffi.Struct { @ffi.Double() external double x; @@ -3691,6 +3778,13 @@ sealed class TGizmoType { static const GIZMO_TYPE_ROTATION = 1; } +sealed class TFeatureLevel { + static const FEATURE_LEVEL_0 = 0; + static const FEATURE_LEVEL_1 = 1; + static const FEATURE_LEVEL_2 = 2; + static const FEATURE_LEVEL_3 = 3; +} + sealed class TPrimitiveType { /// !< points static const PRIMITIVETYPE_POINTS = 0; diff --git a/thermion_dart/lib/src/bindings/src/thermion_dart_js_interop.g.dart b/thermion_dart/lib/src/bindings/src/thermion_dart_js_interop.g.dart index e311f702..1008e18b 100644 --- a/thermion_dart/lib/src/bindings/src/thermion_dart_js_interop.g.dart +++ b/thermion_dart/lib/src/bindings/src/thermion_dart_js_interop.g.dart @@ -402,6 +402,9 @@ extension type NativeLibrary(JSObject _) implements JSObject { external Pointer _Material_createInstance( Pointer tMaterial, ); + external int _Material_getFeatureLevel( + Pointer tMaterial, + ); external Pointer _Material_createImageMaterial( Pointer tEngine, ); @@ -411,6 +414,9 @@ extension type NativeLibrary(JSObject _) implements JSObject { external Pointer _Material_createGizmoMaterial( Pointer tEngine, ); + external Pointer _Material_createOutlineMaterial( + Pointer tEngine, + ); external int _Material_hasParameter( Pointer tMaterial, Pointer propertyName, @@ -721,6 +727,10 @@ extension type NativeLibrary(JSObject _) implements JSObject { int y, PickCallback callback, ); + external void _View_setName( + Pointer tView, + Pointer name, + ); external Pointer _NameComponentManager_create(); external Pointer _NameComponentManager_getName( Pointer tNameComponentManager, @@ -1142,7 +1152,10 @@ extension type NativeLibrary(JSObject _) implements JSObject { ); external void _Renderer_readPixels( Pointer tRenderer, - Pointer tView, + int width, + int height, + int xOffset, + int yOffset, Pointer tRenderTarget, int tPixelBufferFormat, int tPixelDataType, @@ -1156,6 +1169,22 @@ extension type NativeLibrary(JSObject _) implements JSObject { int history, int interval, ); + external Pointer _OverlayManager_create( + Pointer tEngine, + Pointer tRenderer, + Pointer tView, + Pointer tScene, + Pointer tRenderTarget, + ); + external void _OverlayManager_addComponent( + Pointer tOverlayManager, + EntityId entityId, + Pointer tMaterialInstance, + ); + external void _OverlayManager_removeComponent( + Pointer tOverlayManager, + EntityId entityId, + ); external Pointer _RenderTicker_create( Pointer tEngine, Pointer tRenderer, @@ -1181,10 +1210,13 @@ extension type NativeLibrary(JSObject _) implements JSObject { Pointer> views, int numViews, ); - external void _RenderTicker_foo( + external void _RenderTicker_removeSwapChain( Pointer tRenderTicker, - Pointer tOverlayView, - Pointer tMaterialInstance, + Pointer swapChain, + ); + external void _RenderTicker_setOverlayManager( + Pointer tRenderTicker, + Pointer tOverlayManager, ); external Pointer _Engine_create( int backend, @@ -1193,6 +1225,9 @@ extension type NativeLibrary(JSObject _) implements JSObject { int stereoscopicEyeCount, bool disableHandleUseAfterFreeCheck, ); + external int _Engine_getSupportedFeatureLevel( + Pointer tEngine, + ); external void _Engine_destroy( Pointer tEngine, ); @@ -1554,7 +1589,10 @@ extension type NativeLibrary(JSObject _) implements JSObject { ); external void _Renderer_readPixelsRenderThread( Pointer tRenderer, - Pointer tView, + int width, + int height, + int xOffset, + int yOffset, Pointer tRenderTarget, int tPixelBufferFormat, int tPixelDataType, @@ -1578,6 +1616,11 @@ extension type NativeLibrary(JSObject _) implements JSObject { Pointer)>> onComplete, ); + external void _Material_createOutlineMaterialRenderThread( + Pointer tEngine, + Pointer)>> + onComplete, + ); external void _ColorGrading_createRenderThread( Pointer tEngine, int toneMapping, @@ -2323,6 +2366,13 @@ self.Pointer Material_createInstance( return self.Pointer(result); } +int Material_getFeatureLevel( + self.Pointer tMaterial, +) { + final result = _lib._Material_getFeatureLevel(tMaterial.cast()); + return result; +} + self.Pointer Material_createImageMaterial( self.Pointer tEngine, ) { @@ -2344,6 +2394,13 @@ self.Pointer Material_createGizmoMaterial( return self.Pointer(result); } +self.Pointer Material_createOutlineMaterial( + self.Pointer tEngine, +) { + final result = _lib._Material_createOutlineMaterial(tEngine.cast()); + return self.Pointer(result); +} + bool Material_hasParameter( self.Pointer tMaterial, self.Pointer propertyName, @@ -2963,6 +3020,14 @@ void View_pick( return result; } +void View_setName( + self.Pointer tView, + self.Pointer name, +) { + final result = _lib._View_setName(tView.cast(), name); + return result; +} + self.Pointer NameComponentManager_create() { final result = _lib._NameComponentManager_create(); return self.Pointer(result); @@ -3820,15 +3885,27 @@ void Renderer_renderStandaloneView( void Renderer_readPixels( self.Pointer tRenderer, - self.Pointer tView, + int width, + int height, + int xOffset, + int yOffset, self.Pointer tRenderTarget, int tPixelBufferFormat, int tPixelDataType, self.Pointer out, Dart__darwin_size_t outLength, ) { - final result = _lib._Renderer_readPixels(tRenderer.cast(), tView.cast(), - tRenderTarget.cast(), tPixelBufferFormat, tPixelDataType, out, outLength); + final result = _lib._Renderer_readPixels( + tRenderer.cast(), + width, + height, + xOffset, + yOffset, + tRenderTarget.cast(), + tPixelBufferFormat, + tPixelDataType, + out, + outLength); return result; } @@ -3844,6 +3921,37 @@ void Renderer_setFrameInterval( return result; } +self.Pointer OverlayManager_create( + self.Pointer tEngine, + self.Pointer tRenderer, + self.Pointer tView, + self.Pointer tScene, + self.Pointer tRenderTarget, +) { + final result = _lib._OverlayManager_create(tEngine.cast(), tRenderer.cast(), + tView.cast(), tScene.cast(), tRenderTarget.cast()); + return self.Pointer(result); +} + +void OverlayManager_addComponent( + self.Pointer tOverlayManager, + DartEntityId entityId, + self.Pointer tMaterialInstance, +) { + final result = _lib._OverlayManager_addComponent( + tOverlayManager.cast(), entityId, tMaterialInstance.cast()); + return result; +} + +void OverlayManager_removeComponent( + self.Pointer tOverlayManager, + DartEntityId entityId, +) { + final result = + _lib._OverlayManager_removeComponent(tOverlayManager.cast(), entityId); + return result; +} + self.Pointer RenderTicker_create( self.Pointer tEngine, self.Pointer tRenderer, @@ -3897,13 +4005,21 @@ void RenderTicker_setRenderable( return result; } -void RenderTicker_foo( +void RenderTicker_removeSwapChain( self.Pointer tRenderTicker, - self.Pointer tOverlayView, - self.Pointer tMaterialInstance, + self.Pointer swapChain, ) { - final result = _lib._RenderTicker_foo( - tRenderTicker.cast(), tOverlayView.cast(), tMaterialInstance.cast()); + final result = _lib._RenderTicker_removeSwapChain( + tRenderTicker.cast(), swapChain.cast()); + return result; +} + +void RenderTicker_setOverlayManager( + self.Pointer tRenderTicker, + self.Pointer tOverlayManager, +) { + final result = _lib._RenderTicker_setOverlayManager( + tRenderTicker.cast(), tOverlayManager.cast()); return result; } @@ -3919,6 +4035,13 @@ self.Pointer Engine_create( return self.Pointer(result); } +int Engine_getSupportedFeatureLevel( + self.Pointer tEngine, +) { + final result = _lib._Engine_getSupportedFeatureLevel(tEngine.cast()); + return result; +} + void Engine_destroy( self.Pointer tEngine, ) { @@ -4689,7 +4812,10 @@ void Renderer_renderStandaloneViewRenderThread( void Renderer_readPixelsRenderThread( self.Pointer tRenderer, - self.Pointer tView, + int width, + int height, + int xOffset, + int yOffset, self.Pointer tRenderTarget, int tPixelBufferFormat, int tPixelDataType, @@ -4700,7 +4826,10 @@ void Renderer_readPixelsRenderThread( ) { final result = _lib._Renderer_readPixelsRenderThread( tRenderer.cast(), - tView.cast(), + width, + height, + xOffset, + yOffset, tRenderTarget.cast(), tPixelBufferFormat, tPixelDataType, @@ -4741,6 +4870,16 @@ void Material_createGizmoMaterialRenderThread( return result; } +void Material_createOutlineMaterialRenderThread( + self.Pointer tEngine, + self.Pointer)>> + onComplete, +) { + final result = _lib._Material_createOutlineMaterialRenderThread( + tEngine.cast(), onComplete.cast()); + return result; +} + void ColorGrading_createRenderThread( self.Pointer tEngine, int toneMapping, @@ -6212,6 +6351,13 @@ final class TMaterial extends self.Struct { } } +sealed class TFeatureLevel { + static const FEATURE_LEVEL_0 = 0; + static const FEATURE_LEVEL_1 = 1; + static const FEATURE_LEVEL_2 = 2; + static const FEATURE_LEVEL_3 = 3; +} + extension TEngineExt on Pointer { TEngine toDart() { return TEngine(this); @@ -7293,6 +7439,20 @@ final class TSwapChain extends self.Struct { } } +extension TOverlayManagerExt on Pointer { + TOverlayManager toDart() { + return TOverlayManager(this); + } +} + +final class TOverlayManager extends self.Struct { + TOverlayManager(super._address); + + static Pointer stackAlloc() { + return Pointer(_lib._stackAlloc(0)); + } +} + extension TRenderTickerExt on Pointer { TRenderTicker toDart() { return TRenderTicker(this); @@ -7566,7 +7726,7 @@ extension NativeFunctionPointer16 on void Function( } } -extension NativeFunctionPointer19 on void Function( +extension NativeFunctionPointer20 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7579,7 +7739,7 @@ extension NativeFunctionPointer19 on void Function( } } -extension NativeFunctionPointer20 on void Function( +extension NativeFunctionPointer21 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7592,7 +7752,7 @@ extension NativeFunctionPointer20 on void Function( } } -extension NativeFunctionPointer27 on void Function( +extension NativeFunctionPointer28 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7605,7 +7765,7 @@ extension NativeFunctionPointer27 on void Function( } } -extension NativeFunctionPointer29 on void Function( +extension NativeFunctionPointer30 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7616,7 +7776,7 @@ extension NativeFunctionPointer29 on void Function( } } -extension NativeFunctionPointer30 on void Function(int) { +extension NativeFunctionPointer31 on void Function(int) { // orignal type void Function(int ) void Function(int ) dart type void Function(int ) Pointer> addFunction() { @@ -7626,7 +7786,7 @@ extension NativeFunctionPointer30 on void Function(int) { } } -extension NativeFunctionPointer36 on void Function( +extension NativeFunctionPointer37 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7639,7 +7799,7 @@ extension NativeFunctionPointer36 on void Function( } } -extension NativeFunctionPointer37 on void Function( +extension NativeFunctionPointer38 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7653,7 +7813,7 @@ extension NativeFunctionPointer37 on void Function( } } -extension NativeFunctionPointer41 on void Function( +extension NativeFunctionPointer42 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7667,7 +7827,7 @@ extension NativeFunctionPointer41 on void Function( } } -extension NativeFunctionPointer42 on void Function( +extension NativeFunctionPointer43 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7682,7 +7842,7 @@ extension NativeFunctionPointer42 on void Function( } } -extension NativeFunctionPointer45 on void Function( +extension NativeFunctionPointer46 on void Function( double) { // orignal type void Function(double ) void Function(double ) dart type void Function(double ) @@ -7693,7 +7853,7 @@ extension NativeFunctionPointer45 on void Function( } } -extension NativeFunctionPointer46 on void Function( +extension NativeFunctionPointer47 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer ) @@ -7706,7 +7866,7 @@ extension NativeFunctionPointer46 on void Function( } } -extension NativeFunctionPointer47 on void Function( +extension NativeFunctionPointer48 on void Function( self.Pointer) { // orignal type void Function(self.Pointer ) void Function(Pointer ) dart type void Function(self.Pointer )