add createCamera method to FilamentApp

This commit is contained in:
Nick Fisher
2025-05-22 15:07:23 +08:00
parent 9a4fd1141e
commit 943de8f77b
3 changed files with 21 additions and 4 deletions

View File

@@ -1,5 +1,6 @@
import 'dart:async';
import 'package:thermion_dart/src/filament/src/implementation/ffi_camera.dart';
import 'package:thermion_dart/src/filament/src/interface/scene.dart';
import 'package:thermion_dart/src/filament/src/implementation/ffi_asset.dart';
import 'package:thermion_dart/src/filament/src/implementation/ffi_gizmo.dart';
@@ -194,10 +195,23 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
return view;
}
///
///
///
Future<Scene> createScene() async {
return FFIScene(Engine_createScene(engine));
}
///
///
///
Future<Camera> createCamera() async {
return FFICamera(
await withPointerCallback<TCamera>(
(cb) => Engine_createCameraRenderThread(engine, cb)),
this);
}
///
///
///

View File

@@ -70,6 +70,11 @@ abstract class FilamentApp<T> {
///
Future<Scene> createScene();
///
///
///
Future<Camera> createCamera();
///
///
///

View File

@@ -76,10 +76,8 @@ class ThermionViewerFFI extends ThermionViewer {
scene = await FilamentApp.instance!.createScene() as FFIScene;
await view.setScene(scene);
final camera = FFICamera(
await withPointerCallback<TCamera>(
(cb) => Engine_createCameraRenderThread(app.engine, cb)),
app);
final camera = await FilamentApp.instance!.createCamera() as FFICamera;
_cameras.add(camera);
await camera.setLensProjection();