update tests + bindings
This commit is contained in:
@@ -2490,14 +2490,12 @@ external void GltfAssetLoader_createRenderThread(
|
|||||||
@ffi.Native<
|
@ffi.Native<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Pointer<TEngine>,
|
ffi.Pointer<TEngine>,
|
||||||
ffi.Pointer<ffi.Char>,
|
|
||||||
ffi.Pointer<
|
ffi.Pointer<
|
||||||
ffi.NativeFunction<
|
ffi.NativeFunction<
|
||||||
ffi.Void Function(
|
ffi.Void Function(
|
||||||
ffi.Pointer<TGltfResourceLoader>)>>)>(isLeaf: true)
|
ffi.Pointer<TGltfResourceLoader>)>>)>(isLeaf: true)
|
||||||
external void GltfResourceLoader_createRenderThread(
|
external void GltfResourceLoader_createRenderThread(
|
||||||
ffi.Pointer<TEngine> tEngine,
|
ffi.Pointer<TEngine> tEngine,
|
||||||
ffi.Pointer<ffi.Char> relativeResourcePath,
|
|
||||||
ffi.Pointer<
|
ffi.Pointer<
|
||||||
ffi
|
ffi
|
||||||
.NativeFunction<ffi.Void Function(ffi.Pointer<TGltfResourceLoader>)>>
|
.NativeFunction<ffi.Void Function(ffi.Pointer<TGltfResourceLoader>)>>
|
||||||
@@ -2616,12 +2614,10 @@ external void Gizmo_createRenderThread(
|
|||||||
callback,
|
callback,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ffi.Native<
|
@ffi.Native<ffi.Pointer<TGltfResourceLoader> Function(ffi.Pointer<TEngine>)>(
|
||||||
ffi.Pointer<TGltfResourceLoader> Function(
|
isLeaf: true)
|
||||||
ffi.Pointer<TEngine>, ffi.Pointer<ffi.Char>)>(isLeaf: true)
|
|
||||||
external ffi.Pointer<TGltfResourceLoader> GltfResourceLoader_create(
|
external ffi.Pointer<TGltfResourceLoader> GltfResourceLoader_create(
|
||||||
ffi.Pointer<TEngine> tEngine,
|
ffi.Pointer<TEngine> tEngine,
|
||||||
ffi.Pointer<ffi.Char> relativeResourcePath,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
@ffi.Native<
|
@ffi.Native<
|
||||||
|
|||||||
@@ -41,11 +41,10 @@ void main() async {
|
|||||||
}, cameraPosition: Vector3(0, 0, 5));
|
}, cameraPosition: Vector3(0, 0, 5));
|
||||||
});
|
});
|
||||||
|
|
||||||
test('load/remove gltf', () async {
|
test('sync load/remove gltf from uri', () async {
|
||||||
await testHelper.withViewer((viewer) async {
|
await testHelper.withViewer((viewer) async {
|
||||||
var asset = await viewer.loadGltf(
|
var asset = await viewer.loadGltf(
|
||||||
"file://${testHelper.testDir}/assets/cube.gltf",
|
"file://${testHelper.testDir}/assets/cube.gltf");
|
||||||
relativeResourcePath: "${testHelper.testDir}/assets");
|
|
||||||
await viewer
|
await viewer
|
||||||
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
||||||
await testHelper.capture(viewer.view, "gltf_loaded");
|
await testHelper.capture(viewer.view, "gltf_loaded");
|
||||||
@@ -54,12 +53,9 @@ void main() async {
|
|||||||
}, cameraPosition: Vector3(0, 0, 5));
|
}, cameraPosition: Vector3(0, 0, 5));
|
||||||
});
|
});
|
||||||
|
|
||||||
test('load/remove gltf (async)', () async {
|
test('async load/remove gltf from uri', () async {
|
||||||
await testHelper.withViewer((viewer) async {
|
await testHelper.withViewer((viewer) async {
|
||||||
var assetData =
|
var asset = await viewer.loadGltf("file://${testHelper.testDir}/assets/cube.gltf", loadAsync: true);
|
||||||
File("${testHelper.testDir}/assets/cube.gltf").readAsBytesSync();
|
|
||||||
var asset = await viewer.loadGltfFromBuffer(assetData,
|
|
||||||
relativeResourcePath: "${testHelper.testDir}/assets", loadResourcesAsync: true);
|
|
||||||
await viewer
|
await viewer
|
||||||
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
||||||
await testHelper.capture(viewer.view, "gltf_async_loaded");
|
await testHelper.capture(viewer.view, "gltf_async_loaded");
|
||||||
@@ -68,11 +64,22 @@ void main() async {
|
|||||||
}, cameraPosition: Vector3(0, 0, 5));
|
}, cameraPosition: Vector3(0, 0, 5));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('sync load/remove gltf from buffer', () async {
|
||||||
|
await testHelper.withViewer((viewer) async {
|
||||||
|
var assetData =
|
||||||
|
File("${testHelper.testDir}/assets/cube.gltf").readAsBytesSync();
|
||||||
|
var asset = await viewer.loadGltfFromBuffer(assetData,
|
||||||
|
resourceUri: "${testHelper.testDir}/assets", loadResourcesAsync: false);
|
||||||
|
await viewer
|
||||||
|
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
||||||
|
await testHelper.capture(viewer.view, "gltf_load_from_buffer");
|
||||||
|
}, cameraPosition: Vector3(0, 0, 5));
|
||||||
|
});
|
||||||
|
|
||||||
test('transform gltf to unit cube', () async {
|
test('transform gltf to unit cube', () async {
|
||||||
await testHelper.withViewer((viewer) async {
|
await testHelper.withViewer((viewer) async {
|
||||||
var asset = await viewer.loadGltf(
|
var asset = await viewer.loadGltf(
|
||||||
"file://${testHelper.testDir}/assets/cube.gltf",
|
"file://${testHelper.testDir}/assets/cube.gltf");
|
||||||
relativeResourcePath: "${testHelper.testDir}/assets");
|
|
||||||
|
|
||||||
await viewer
|
await viewer
|
||||||
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
|
||||||
|
|||||||
@@ -195,8 +195,13 @@ class TestHelper {
|
|||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<Uint8List> _loadResource(String uri) async {
|
||||||
|
uri = uri.replaceAll("file://", "");
|
||||||
|
return File(uri).readAsBytesSync();
|
||||||
|
}
|
||||||
|
|
||||||
Future setup() async {
|
Future setup() async {
|
||||||
await FFIFilamentApp.create();
|
await FFIFilamentApp.create(config: FFIFilamentConfig(loadResource: _loadResource));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future createViewer(
|
Future createViewer(
|
||||||
@@ -244,9 +249,7 @@ class TestHelper {
|
|||||||
color: color, depth: depth) as FFIRenderTarget;
|
color: color, depth: depth) as FFIRenderTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
var viewer = ThermionViewerFFI(
|
var viewer = ThermionViewerFFI();
|
||||||
loadAssetFromUri: (path) async =>
|
|
||||||
File(path.replaceAll("file://", "")).readAsBytesSync());
|
|
||||||
|
|
||||||
await viewer.initialized;
|
await viewer.initialized;
|
||||||
await FilamentApp.instance!.register(swapChain, viewer.view);
|
await FilamentApp.instance!.register(swapChain, viewer.view);
|
||||||
|
|||||||
Reference in New Issue
Block a user