Show value when printing UNKNOWN

This commit is contained in:
Syoyo Fujita 2018-09-23 17:57:00 +09:00
parent 0de4d7c05f
commit 0c0b993639
2 changed files with 24 additions and 13 deletions

View File

@ -19,7 +19,8 @@
#define STB_IMAGE_WRITE_IMPLEMENTATION #define STB_IMAGE_WRITE_IMPLEMENTATION
#include "tiny_gltf.h" #include "tiny_gltf.h"
#define BUFFER_OFFSET(i) ((char *)NULL + (i)) //#define BUFFER_OFFSET(i) ((char *)NULL + (i))
#define BUFFER_OFFSET(i) (reinterpret_cast<void *>(i))
#define CheckGLErrors(desc) \ #define CheckGLErrors(desc) \
{ \ { \
@ -677,7 +678,7 @@ static void DrawNode(tinygltf::Model &model, const tinygltf::Node &node) {
glPopMatrix(); glPopMatrix();
} }
static void DrawModel(tinygltf::Model &model) { static void DrawModel(tinygltf::Model &model, size_t scene_idx) {
#if 0 #if 0
std::map<std::string, tinygltf::Mesh>::const_iterator it(scene.meshes.begin()); std::map<std::string, tinygltf::Mesh>::const_iterator it(scene.meshes.begin());
std::map<std::string, tinygltf::Mesh>::const_iterator itEnd(scene.meshes.end()); std::map<std::string, tinygltf::Mesh>::const_iterator itEnd(scene.meshes.end());
@ -688,9 +689,8 @@ static void DrawModel(tinygltf::Model &model) {
} }
#else #else
// TODO(syoyo): Support non-default scenes. assert(scene_idx < model.scenes.size());
assert(model.defaultScene >= 0); const tinygltf::Scene &scene = model.scenes[scene_idx];
const tinygltf::Scene &scene = model.scenes[model.defaultScene];
for (size_t i = 0; i < scene.nodes.size(); i++) { for (size_t i = 0; i < scene.nodes.size(); i++) {
DrawNode(model, model.nodes[scene.nodes[i]]); DrawNode(model, model.nodes[scene.nodes[i]]);
} }
@ -760,8 +760,18 @@ int main(int argc, char **argv) {
Init(); Init();
if (model.scenes.empty()) {
std::cerr << "glTF model does not have scenes" << std::endl;
return EXIT_FAILURE;
}
// DBG // DBG
PrintNodes(model.scenes[model.defaultScene]); size_t scene_idx = size_t(model.defaultScene);
if (model.defaultScene == -1) {
scene_idx = 0;
}
PrintNodes(model.scenes[scene_idx]);
if (!glfwInit()) { if (!glfwInit()) {
std::cerr << "Failed to initialize GLFW." << std::endl; std::cerr << "Failed to initialize GLFW." << std::endl;
@ -853,7 +863,7 @@ int main(int argc, char **argv) {
glScalef(scale, scale, scale); glScalef(scale, scale, scale);
DrawModel(model); DrawModel(model, scene_idx);
glMatrixMode(GL_PROJECTION); glMatrixMode(GL_PROJECTION);
glPopMatrix(); glPopMatrix();

View File

@ -30,7 +30,8 @@ static std::string PrintMode(int mode) {
} else if (mode == TINYGLTF_MODE_TRIANGLE_STRIP) { } else if (mode == TINYGLTF_MODE_TRIANGLE_STRIP) {
return "TRIANGLE_STRIP"; return "TRIANGLE_STRIP";
} }
return "**UNKNOWN**";
return "**UNKNOWN**(" + std::to_string(mode) + ")";
} }
static std::string PrintTarget(int target) { static std::string PrintTarget(int target) {
@ -39,7 +40,7 @@ static std::string PrintTarget(int target) {
} else if (target == 34963) { } else if (target == 34963) {
return "GL_ELEMENT_ARRAY_BUFFER"; return "GL_ELEMENT_ARRAY_BUFFER";
} else { } else {
return "**UNKNOWN**"; return "**UNKNOWN**(" + std::to_string(target) + ")";
} }
} }
@ -63,7 +64,7 @@ static std::string PrintType(int ty) {
} else if (ty == TINYGLTF_TYPE_MAT4) { } else if (ty == TINYGLTF_TYPE_MAT4) {
return "MAT4"; return "MAT4";
} }
return "**UNKNOWN**"; return "**UNKNOWN**(" + std::to_string(ty) + ")";
} }
static std::string PrintComponentType(int ty) { static std::string PrintComponentType(int ty) {
@ -85,7 +86,7 @@ static std::string PrintComponentType(int ty) {
return "DOUBLE"; return "DOUBLE";
} }
return "**UNKNOWN**"; return "**UNKNOWN**(" + std::to_string(ty) + ")";
} }
#if 0 #if 0
@ -147,7 +148,7 @@ static std::string PrintWrapMode(int mode) {
return "MIRRORED_REPEAT"; return "MIRRORED_REPEAT";
} }
return "**UNKNOWN**"; return "**UNKNOWN**(" + std::to_string(mode) + ")";
} }
static std::string PrintFilterMode(int mode) { static std::string PrintFilterMode(int mode) {
@ -164,7 +165,7 @@ static std::string PrintFilterMode(int mode) {
} else if (mode == TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR) { } else if (mode == TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR) {
return "LINEAR_MIPMAP_LINEAR"; return "LINEAR_MIPMAP_LINEAR";
} }
return "**UNKNOWN**"; return "**UNKNOWN**(" + std::to_string(mode) + ")";
} }
static std::string PrintIntArray(const std::vector<int> &arr) { static std::string PrintIntArray(const std::vector<int> &arr) {