| 171 | } |
| 172 | |
| 173 | static Result AddBuiltinMount(HFactory factory, NewFactoryParams* params) |
| 174 | { |
| 175 | dmResourceProvider::HArchiveInternal internal = 0; |
| 176 | dmResourceProvider::Result result; |
| 177 | result = dmResourceProviderArchive::CreateArchive( (uint8_t*)params->m_ArchiveManifest.m_Data, params->m_ArchiveManifest.m_Size, |
| 178 | (uint8_t*)params->m_ArchiveIndex.m_Data, params->m_ArchiveIndex.m_Size, |
| 179 | (uint8_t*)params->m_ArchiveData.m_Data, params->m_ArchiveData.m_Size, |
| 180 | &internal); |
| 181 | if (dmResourceProvider::RESULT_OK != result) |
| 182 | { |
| 183 | internal = 0; |
| 184 | dmLogError("Failed to create in-memory archive from builtin project: %d", result); |
| 185 | return RESULT_INVAL; |
| 186 | } |
| 187 | |
| 188 | dmResourceProvider::HArchiveLoader loader = dmResourceProvider::FindLoaderByName(dmHashString64("archive")); |
| 189 | result = dmResourceProvider::CreateMount(loader, internal, &factory->m_BuiltinMount); |
| 190 | |
| 191 | if (dmResourceProvider::RESULT_OK != result) |
| 192 | { |
| 193 | factory->m_BuiltinMount = 0; |
| 194 | dmLogError("Failed to mount builtin archive: %d", result); |
| 195 | return RESULT_NOT_LOADED; |
| 196 | } |
| 197 | |
| 198 | dmResourceMounts::AddMount(factory->m_Mounts, dmHashString64("_builtin"), factory->m_BuiltinMount, -5); |
| 199 | return RESULT_OK; |
| 200 | } |
| 201 | |
| 202 | HFactory NewFactory(NewFactoryParams* params, const char* uri) |
| 203 | { |
no test coverage detected