This commit is contained in:
Nick Fisher
2025-05-12 12:32:21 +08:00
parent 43442e10de
commit 826a22f348
6 changed files with 267 additions and 202 deletions

View File

@@ -789,13 +789,13 @@ class FFIAsset extends ThermionAsset {
Future<Matrix4> getLocalTransform({ThermionEntity? entity}) async {
late Pointer stackPtr;
if (FILAMENT_WASM) {
//stackPtr = stackSave();
stackPtr = stackSave();
}
entity ??= this.entity;
final transform = double4x4ToMatrix4(
TransformManager_getLocalTransform(app.transformManager, entity));
if (FILAMENT_WASM) {
//stackRestore(stackPtr);
stackRestore(stackPtr);
}
return transform;
}
@@ -806,13 +806,13 @@ class FFIAsset extends ThermionAsset {
Future<Matrix4> getWorldTransform({ThermionEntity? entity}) async {
late Pointer stackPtr;
if (FILAMENT_WASM) {
//stackPtr = stackSave();
stackPtr = stackSave();
}
entity ??= this.entity;
var transform = double4x4ToMatrix4(
TransformManager_getWorldTransform(app.transformManager, entity));
if (FILAMENT_WASM) {
//stackRestore(stackPtr);
stackRestore(stackPtr);
}
return transform;
}
@@ -821,9 +821,16 @@ class FFIAsset extends ThermionAsset {
///
///
Future setTransform(Matrix4 transform, {ThermionEntity? entity}) async {
late Pointer stackPtr;
if (FILAMENT_WASM) {
stackPtr = stackSave();
}
entity ??= this.entity;
TransformManager_setTransform(
app.transformManager, entity, matrix4ToDouble4x4(transform));
if (FILAMENT_WASM) {
stackRestore(stackPtr);
}
}
///

View File

@@ -203,9 +203,9 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
///
Future destroySwapChain(SwapChain swapChain) async {
_logger.info("Destroying swapchain");
await withVoidCallback((callback) {
await withVoidCallback((requestId, callback) {
Engine_destroySwapChainRenderThread(
engine, (swapChain as FFISwapChain).swapChain, callback);
engine, (swapChain as FFISwapChain).swapChain, requestId, callback);
});
_swapChains.remove(swapChain);
_logger.info("Destroyed swapchain");