@@ -47,7 +47,7 @@ TEST_P(SceneTest, CuboidUnlit) {
47
47
48
48
Node& root = scene.GetRoot ();
49
49
root.SetLocalTransform (Matrix::MakeTranslation (-size / 2 ));
50
- root.SetMesh (mesh);
50
+ root.SetMesh (std::move ( mesh) );
51
51
}
52
52
53
53
// Face towards the +Z direction (+X right, +Y up).
@@ -70,34 +70,26 @@ TEST_P(SceneTest, GLTFScene) {
70
70
71
71
auto mapping =
72
72
flutter::testing::OpenFixtureAsMapping (" flutter_logo.glb.ipscene" );
73
+ ASSERT_NE (mapping, nullptr );
73
74
74
- flatbuffers::Verifier verifier (mapping->GetMapping (), mapping->GetSize ());
75
- ASSERT_TRUE (fb::VerifySceneBuffer (verifier));
76
-
77
- // TODO(bdero): Add full scene deserialization utilities.
78
- const auto * fb_scene = fb::GetScene (mapping->GetMapping ());
79
- const auto fb_nodes = fb_scene->children ();
80
- ASSERT_EQ (fb_nodes->size (), 1u );
81
- const auto fb_meshes = fb_nodes->begin ()->mesh_primitives ();
82
- ASSERT_EQ (fb_meshes->size (), 1u );
83
- const auto * fb_mesh = fb_meshes->Get (0 );
84
- auto geometry = Geometry::MakeFromFBMeshPrimitive (*fb_mesh, *allocator);
85
- ASSERT_NE (geometry, nullptr );
75
+ std::optional<Node> gltf_scene =
76
+ Node::MakeFromFlatbuffer (*mapping, *allocator);
77
+ ASSERT_TRUE (gltf_scene.has_value ());
86
78
87
79
std::shared_ptr<UnlitMaterial> material = Material::MakeUnlit ();
88
- auto bridge = CreateTextureForFixture (" flutter_logo_baked.png" );
89
- material->SetColorTexture (bridge );
80
+ auto color_baked = CreateTextureForFixture (" flutter_logo_baked.png" );
81
+ material->SetColorTexture (color_baked );
90
82
material->SetVertexColorWeight (0 );
91
83
92
- Renderer::RenderCallback callback = [&](RenderTarget& render_target) {
93
- auto scene = Scene (GetContext ());
84
+ ASSERT_EQ (gltf_scene->GetChildren ().size (), 1u );
85
+ ASSERT_EQ (gltf_scene->GetChildren ()[0 ].GetMesh ().GetPrimitives ().size (), 1u );
86
+ gltf_scene->GetChildren ()[0 ].GetMesh ().GetPrimitives ()[0 ].material = material;
94
87
95
- Mesh mesh;
96
- mesh.AddPrimitive ({geometry, material});
97
-
98
- scene.GetRoot ().SetLocalTransform (Matrix::MakeScale ({3 , 3 , 3 }));
99
- scene.GetRoot ().SetMesh (mesh);
88
+ auto scene = Scene (GetContext ());
89
+ scene.GetRoot ().AddChild (std::move (gltf_scene.value ()));
90
+ scene.GetRoot ().SetLocalTransform (Matrix::MakeScale ({3 , 3 , 3 }));
100
91
92
+ Renderer::RenderCallback callback = [&](RenderTarget& render_target) {
101
93
Quaternion rotation ({0 , 1 , 0 }, -GetSecondsElapsed () * 0.5 );
102
94
Vector3 start_position (-1 , -1.5 , -5 );
103
95
0 commit comments