瀏覽代碼

LoadIQM: attempt to load texture from IQM at loadtime. (#4029)

tries to load the texture with the base path of the original IQM file, relative paths should work.
Jett 1 年之前
父節點
當前提交
06f8c4f733
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      src/rmodels.c

+ 3 - 0
src/rmodels.c

@@ -4268,6 +4268,8 @@ static Model LoadIQM(const char *fileName)
     // In case file can not be read, return an empty model
     // In case file can not be read, return an empty model
     if (fileDataPtr == NULL) return model;
     if (fileDataPtr == NULL) return model;
 
 
+    const char* basePath = GetDirectoryPath(fileName);
+
     // Read IQM header
     // Read IQM header
     IQMHeader *iqmHeader = (IQMHeader *)fileDataPtr;
     IQMHeader *iqmHeader = (IQMHeader *)fileDataPtr;
 
 
@@ -4312,6 +4314,7 @@ static Model LoadIQM(const char *fileName)
         memcpy(material, fileDataPtr + iqmHeader->ofs_text + imesh[i].material, MATERIAL_NAME_LENGTH*sizeof(char));
         memcpy(material, fileDataPtr + iqmHeader->ofs_text + imesh[i].material, MATERIAL_NAME_LENGTH*sizeof(char));
 
 
         model.materials[i] = LoadMaterialDefault();
         model.materials[i] = LoadMaterialDefault();
+        model.materials[i].maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture(TextFormat("%s/%s", basePath, material));
 
 
         TRACELOG(LOG_DEBUG, "MODEL: [%s] mesh name (%s), material (%s)", fileName, name, material);
         TRACELOG(LOG_DEBUG, "MODEL: [%s] mesh name (%s), material (%s)", fileName, name, material);