@@ -47,7 +47,7 @@ TEST_P(SceneTest, CuboidUnlit) {
4747
4848 Node& root = scene.GetRoot ();
4949 root.SetLocalTransform (Matrix::MakeTranslation (-size / 2 ));
50- root.SetMesh (mesh);
50+ root.SetMesh (std::move ( mesh) );
5151 }
5252
5353 // Face towards the +Z direction (+X right, +Y up).
@@ -70,34 +70,26 @@ TEST_P(SceneTest, GLTFScene) {
7070
7171 auto mapping =
7272 flutter::testing::OpenFixtureAsMapping (" flutter_logo.glb.ipscene" );
73+ ASSERT_NE (mapping, nullptr );
7374
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 ());
8678
8779 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 );
9082 material->SetVertexColorWeight (0 );
9183
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;
9487
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 }));
10091
92+ Renderer::RenderCallback callback = [&](RenderTarget& render_target) {
10193 Quaternion rotation ({0 , 1 , 0 }, -GetSecondsElapsed () * 0.5 );
10294 Vector3 start_position (-1 , -1.5 , -5 );
10395
0 commit comments