diff --git a/examples/glview/glview.cc b/examples/glview/glview.cc index 4c462b4..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]]); } @@ -783,7 +784,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;