message: gltfpack: Simplify .obj material import
  There's no real need to use std::sort/std::unique/std::lower_bound - we
  have other sources of O(meshes*materials) elsewhere and for now it's
  much simpler to just write simple code. We can solve the performance
  issue if we ever get meshes with hundreds of thousands of materials...
diff: @@ -316,13 +316,13 @@ void defaultFree(void*, void* p)
  free(p);
  }
  -size_t textureIndex(const std::vector<std::string>& textures, const std::string& name)
  +int textureIndex(const std::vector<std::string>& textures, const char* name)
  {
  - std::vector<std::string>::const_iterator it = std::lower_bound(textures.begin(), textures.end(), name);
  - assert(it != textures.end());
  - assert(*it == name);
  + for (size_t i = 0; i < textures.size(); ++i)
  + if (textures[i] == name)
  + return int(i);
  - return size_t(it - textures.begin());
  + return -1;
  }
  cgltf_data* parseSceneObj(fastObjMesh* obj)
  @@ -336,13 +336,10 @@ cgltf_data* parseSceneObj(fastObjMesh* obj)
  {
  fastObjMaterial& om = obj->materials[mi];
  - if (om.map_Kd.name)
  + if (om.map_Kd.name && textureIndex(textures, om.map_Kd.name) < 0)
  textures.push_back(om.map_Kd.name);
  }
  - std::sort(textures.begin(), textures.end());
  - textures.erase(std::unique(textures.begin(), textures.end()), textures.end());
  -
  data->images = (cgltf_image*)calloc(textures.size(), sizeof(cgltf_image));
  data->images_count = textures.size();
  