test updates
This commit is contained in:
@@ -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();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user