From 4402576a914a7d36d5f13351b2b1b69503e484cc Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Mon, 24 Sep 2018 16:18:12 +0900 Subject: [PATCH] Check bufferView.target --- examples/skinning/main.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/skinning/main.cc b/examples/skinning/main.cc index 41b8d22..f54c49e 100644 --- a/examples/skinning/main.cc +++ b/examples/skinning/main.cc @@ -529,6 +529,12 @@ static void DrawMesh(tinygltf::Model &model, const tinygltf::Mesh &mesh) { for (; it != itEnd; it++) { assert(it->second >= 0); const tinygltf::Accessor &accessor = model.accessors[it->second]; + const tinygltf::BufferView &bufferView = model.bufferViews[accessor.bufferView]; + + if (bufferView.target == 0) { + continue; + } + glBindBuffer(GL_ARRAY_BUFFER, gBufferState[accessor.bufferView].vb); CheckErrors("bind buffer"); int size = 1; @@ -668,7 +674,9 @@ static void DrawNode(tinygltf::Model &model, const tinygltf::Node &node) { // std::cout << it->first << std::endl; // FIXME(syoyo): Refactor. // DrawCurves(scene, it->second); - DrawMesh(model, model.meshes[node.mesh]); + if (node.mesh > -1) { + DrawMesh(model, model.meshes[node.mesh]); + } // Draw child nodes. for (size_t i = 0; i < node.children.size(); i++) {