bool GiCoreView::setContent(const char* content) { DrawLocker locker(impl); bool ret = loadShapes(impl->defaultStorage.storageForRead(content)); impl->defaultStorage.clear(); return ret; }
void ModelLoader::loadModel(std::string path, ModelData* modelData) { std::string basename, directory; splitPath(path, &basename, &directory); std::vector<tinyobj::shape_t> shapes; std::vector<tinyobj::material_t> materials; std::string err = tinyobj::LoadObj(shapes, materials, path.c_str(), directory.c_str()); modelData->vertices.clear(); modelData->indices.clear(); modelData->material.reset(); modelData->diffuseTex.reset(); modelData->alphaTex.reset(); if (materials.size() > 0) { modelData->material.reset(createMaterialFromMtl(*materials.begin())); if (!materials.begin()->diffuse_texname.empty()) modelData->diffuseTex.reset(loadImage(directory, materials.begin()->diffuse_texname)); else modelData->diffuseTex.reset(); if (!materials.begin()->alpha_texname.empty()) modelData->alphaTex.reset(loadImage(directory, materials.begin()->alpha_texname)); else modelData->alphaTex.reset(); } if (!err.empty()) throw Exception(err); loadShapes(shapes, &modelData->vertices, &modelData->indices); }
bool GiCoreView::loadFromFile(const char* vgfile) { #if defined(_MSC_VER) && _MSC_VER >= 1400 // VC8 FILE *fp = NULL; fopen_s(&fp, vgfile, "rt"); #else FILE *fp = fopen(vgfile, "rt"); #endif DrawLocker locker(impl); MgJsonStorage s; bool ret = loadShapes(s.storageForRead(fp)); if (fp) { fclose(fp); } else { LOGE("Fail to open file: %s", vgfile); } return ret; }
void GiCoreView::clear() { DrawLocker locker(impl); loadShapes((MgStorage*)0); }