Example #1
0
Asset* AssetSystem::createAsset(const char* pFileName)
{
  Asset* asset = NULL;
  
  DLOG(INFO) << "New asset: " << pFileName;
  // does the file exist?
  if (::access(pFileName, R_OK) == 0)
  {
    const char* extension = strrchr(pFileName, '.');
    ASSERT(extension != NULL, "Filename passed with no extension!");
    if (extension)
    {
      DLOG(INFO) << "Extension is " << extension;
      if (strcasecmp(extension + 1, "xml") == 0)
      {
        asset = ObjectBuilderAsset::factory();
      }
      else if (strcasecmp(extension + 1, "zip") == 0)
      {
        asset = O3DSceneAsset::factory();
      }
      
      if (asset)
      {
        asset->setPath(pFileName);
        DLOG(INFO) << "Generated new Asset record for " << pFileName;
      }
    }
  }
  else
  {
    // no such file!
    DLOG(ERROR) << "Asset file not found: " << pFileName;
  }
  
  return asset;
}