test updates

This commit is contained in:
Nick Fisher
2025-03-28 10:04:21 +08:00
parent 7a5fdb0b77
commit b4e4eb349c
2 changed files with 35 additions and 33 deletions

View File

@@ -13,30 +13,22 @@ void main() async {
group("render thread/capture", () { group("render thread/capture", () {
test("request frame on render thread", () async { test("request frame on render thread", () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
var metalTexture = await testHelper.createTexture(500, 500);
var texture = await FilamentApp.instance!.createTexture(
500, 500,
importedTextureHandle: metalTexture.metalTextureAddress,
flags: {
TextureUsage.TEXTURE_USAGE_BLIT_DST,
TextureUsage.TEXTURE_USAGE_SAMPLEABLE,
TextureUsage.TEXTURE_USAGE_COLOR_ATTACHMENT
});
var renderTarget = await FilamentApp.instance!
.createRenderTarget(500, 500, color: texture);
await viewer.view.setRenderTarget(renderTarget);
await viewer.render(); await viewer.render();
await Future.delayed(Duration(milliseconds: 1)); await Future.delayed(Duration(milliseconds: 1));
var data = metalTexture.getTextureBytes()!; // var data = viewer.metalTexture.getTextureBytes()!;
var pixels = data.bytes.cast<Uint8>().asTypedList(data.length); // var pixels = data.bytes.cast<Uint8>().asTypedList(data.length);
// savePixelBufferToBmp(
// pixels, 500, 500, "${testHelper.testDir}/request_frame.bmp");
await viewer.setRendering(true);
await Future.delayed(Duration(seconds: 1));
await FilamentApp.instance!.requestFrame();
await testHelper.capture(viewer.view, "render_thread_2");
savePixelBufferToBmp(
pixels, 500, 500, "${testHelper.testDir}/request_frame.bmp");
await viewer.dispose(); await viewer.dispose();
}); });
}); });

View File

@@ -2,41 +2,51 @@
import 'package:thermion_dart/thermion_dart.dart'; import 'package:thermion_dart/thermion_dart.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
import 'package:vector_math/vector_math_64.dart';
import 'helpers.dart'; import 'helpers.dart';
void main() async { void main() async {
final testHelper = TestHelper("transforms"); final testHelper = TestHelper("transforms");
await testHelper.setup();
group("transforms", () { group("transforms", () {
test('set/unset parent geometry', () async { test('set/unset parent geometry', () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
var blueMaterialInstance = await viewer.createUnlitMaterialInstance(); var blueMaterialInstance =
final blueCube = await viewer.createGeometry(GeometryHelper.cube(normals: false, uvs: false), await FilamentApp.instance!.createUnlitMaterialInstance();
final blueCube = await viewer.createGeometry(
GeometryHelper.cube(normals: false, uvs: false),
materialInstances: [blueMaterialInstance]); materialInstances: [blueMaterialInstance]);
await blueMaterialInstance.setParameterFloat4( await blueMaterialInstance.setParameterFloat4(
"baseColorFactor", 0.0, 0.0, 1.0, 1.0); "baseColorFactor", 0.0, 0.0, 1.0, 1.0);
// Position blue cube slightly behind and to the right // Position blue cube slightly behind and to the right
await viewer.setTransform( await blueCube
blueCube.entity, Matrix4.translation(Vector3(1.0, 0.0, -1.0))); .setTransform(Matrix4.translation(Vector3(1.0, 0.0, -1.0)));
var greenMaterialInstance = await viewer.createUnlitMaterialInstance(); var greenMaterialInstance =
final greenCube = await viewer.createGeometry(GeometryHelper.cube(normals: false, uvs: false), await FilamentApp.instance!.createUnlitMaterialInstance();
final greenCube = await viewer.createGeometry(
GeometryHelper.cube(normals: false, uvs: false),
materialInstances: [greenMaterialInstance]); materialInstances: [greenMaterialInstance]);
await greenMaterialInstance.setParameterFloat4( await greenMaterialInstance.setParameterFloat4(
"baseColorFactor", 0.0, 1.0, 0.0, 1.0); "baseColorFactor", 0.0, 1.0, 0.0, 1.0);
await testHelper.capture(viewer, "before_parent"); await viewer.addToScene(blueCube);
await viewer.setParent(blueCube.entity, greenCube.entity); await viewer.addToScene(greenCube);
await viewer.setTransform( await testHelper.capture(viewer.view, "before_parent");
greenCube.entity, Matrix4.translation(Vector3.all(-1)));
await testHelper.capture(viewer, "after_parent"); await FilamentApp.instance!.setParent(blueCube.entity, greenCube.entity);
await viewer.setParent(blueCube.entity, null); await greenCube.setTransform(Matrix4.translation(Vector3.all(-1)));
await testHelper.capture(viewer, "unparent"); await testHelper.capture(viewer.view, "after_parent");
await FilamentApp.instance!.setParent(blueCube.entity, null);
await testHelper.capture(viewer.view, "unparent");
}); });
}); });
}); });
} }