@Timeout(const Duration(seconds: 600)) import 'dart:io'; import 'package:test/test.dart'; import 'package:vector_math/vector_math_64.dart'; import 'helpers.dart'; void main() async { final testHelper = TestHelper("assets"); await testHelper.setup(); group("assets", () { test('load/clear skybox', () async { await testHelper.withViewer((viewer) async { await viewer.loadSkybox( "file://${testHelper.testDir}/assets/default_env_skybox.ktx"); await testHelper.capture(viewer.view, "load_skybox"); await viewer.removeSkybox(); await testHelper.capture(viewer.view, "remove_skybox"); await viewer.setPostProcessing(true); await viewer.setBloom(false, 0.01); await viewer.loadSkybox( "file://${testHelper.testDir}/assets/default_env_skybox.ktx"); await testHelper.capture( viewer.view, "load_skybox_with_postprocessing"); await viewer.removeSkybox(); await testHelper.capture( viewer.view, "remove_skybox_with_postprocessing"); }, createRenderTarget: true); }); test('load/remove ibl', () async { await testHelper.withViewer((viewer) async { var asset = await viewer .loadGltf("file://${testHelper.testDir}/assets/cube.glb"); await viewer .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); await testHelper.capture(viewer.view, "ibl_loaded"); await viewer.removeIbl(); await testHelper.capture(viewer.view, "ibl_removed"); }, cameraPosition: Vector3(0, 0, 5)); }); test('load/remove gltf', () async { await testHelper.withViewer((viewer) async { var asset = await viewer.loadGltf( "file://${testHelper.testDir}/assets/cube.gltf", relativeResourcePath: "${testHelper.testDir}/assets"); await viewer .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); await testHelper.capture(viewer.view, "gltf_loaded"); await viewer.removeFromScene(asset); await testHelper.capture(viewer.view, "gltf_removed"); }, cameraPosition: Vector3(0, 0, 5)); }); test('load/remove gltf (async)', () async { await testHelper.withViewer((viewer) async { var assetData = File("${testHelper.testDir}/assets/cube.gltf").readAsBytesSync(); var asset = await viewer.loadGltfFromBuffer(assetData, relativeResourcePath: "${testHelper.testDir}/assets", loadResourcesAsync: true); await viewer .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); await testHelper.capture(viewer.view, "gltf_async_loaded"); await viewer.removeFromScene(asset); await testHelper.capture(viewer.view, "gltf_async_removed"); }, cameraPosition: Vector3(0, 0, 5)); }); test('transform gltf to unit cube', () async { await testHelper.withViewer((viewer) async { var asset = await viewer.loadGltf( "file://${testHelper.testDir}/assets/cube.gltf", relativeResourcePath: "${testHelper.testDir}/assets"); await viewer .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); await asset.setTransform(Matrix4.compose( Vector3.zero(), Quaternion.identity(), Vector3.all(2))); await testHelper.capture(viewer.view, "gltf_before_unit_cube"); await asset.transformToUnitCube(); await testHelper.capture(viewer.view, "gltf_after_unit_cube"); }, cameraPosition: Vector3(0, 0, 5)); }); test('add/remove asset from scene ', () async { await testHelper.withViewer((viewer) async { var asset = await viewer .loadGltf("file://${testHelper.testDir}/assets/cube.glb"); await viewer .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); await testHelper.capture(viewer.view, "asset_added"); await viewer.removeFromScene(asset); await testHelper.capture(viewer.view, "asset_removed"); }, cameraPosition: Vector3(0, 0, 5)); }); test('destroy assets', () async { await testHelper.withViewer((viewer) async { var asset = await viewer .loadGltf("file://${testHelper.testDir}/assets/cube.glb"); await viewer .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); await testHelper.capture(viewer.view, "assets_present"); await viewer.destroyAssets(); await testHelper.capture(viewer.view, "assets_destroyed"); }, cameraPosition: Vector3(0, 0, 5)); }); }); }