From cba75b99271279f71410b82afadc43e739a99bbd Mon Sep 17 00:00:00 2001 From: "Arthur Brainville (Ybalrid)" Date: Sun, 27 Jan 2019 20:20:58 +0000 Subject: [PATCH 1/2] fix glview in case gltf asset doesn't have a default scene --- examples/glview/glview.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/glview/glview.cc b/examples/glview/glview.cc index 4c462b4..b71b32f 100644 --- a/examples/glview/glview.cc +++ b/examples/glview/glview.cc @@ -783,7 +783,7 @@ int main(int argc, char **argv) { Init(); // DBG - PrintNodes(model.scenes[model.defaultScene]); + PrintNodes(model.scenes[model.defaultScene > -1 ? model.defaultScene : 0]); if (!glfwInit()) { std::cerr << "Failed to initialize GLFW." << std::endl; From 215e1fae61e3a1a44f577dcd04d2b8f7ca429423 Mon Sep 17 00:00:00 2001 From: "Arthur Brainville (Ybalrid)" Date: Sun, 27 Jan 2019 20:28:23 +0000 Subject: [PATCH 2/2] handle not having default scene --- examples/glview/glview.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/glview/glview.cc b/examples/glview/glview.cc index b71b32f..b2a3d70 100644 --- a/examples/glview/glview.cc +++ b/examples/glview/glview.cc @@ -701,10 +701,11 @@ static void DrawModel(tinygltf::Model &model) { DrawCurves(scene, it->second); } #else - - // TODO(syoyo): Support non-default scenes. - assert(model.defaultScene >= 0); - const tinygltf::Scene &scene = model.scenes[model.defaultScene]; + //If the glTF asset has at least one scene, and doesn't define a default one + //just show the first one we can find + assert(model.scenes.size() > 0); + int scene_to_display = model.defaultScene > -1 ? model.defaultScene : 0; + const tinygltf::Scene &scene = model.scenes[scene_to_display]; for (size_t i = 0; i < scene.nodes.size(); i++) { DrawNode(model, model.nodes[scene.nodes[i]]); }