Review LoadGLTF() to read from memory buffer

This commit is contained in:
raysan5 2020-04-30 19:51:57 +02:00
parent 4b03860810
commit 4ca4326bf9

View file

@ -3521,27 +3521,15 @@ static Model LoadGLTF(const char *fileName)
Model model = { 0 }; Model model = { 0 };
// glTF file loading // glTF file loading
FILE *gltfFile = fopen(fileName, "rb"); unsigned int dataSize = 0;
unsigned char *fileData = LoadFileData(fileName, &dataSize);
if (gltfFile == NULL) if (fileData == NULL) return model;
{
TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to open glTF file", fileName);
return model;
}
fseek(gltfFile, 0, SEEK_END);
int size = ftell(gltfFile);
fseek(gltfFile, 0, SEEK_SET);
void *buffer = RL_MALLOC(size);
fread(buffer, size, 1, gltfFile);
fclose(gltfFile);
// glTF data loading // glTF data loading
cgltf_options options = { 0 }; cgltf_options options = { 0 };
cgltf_data *data = NULL; cgltf_data *data = NULL;
cgltf_result result = cgltf_parse(&options, buffer, size, &data); cgltf_result result = cgltf_parse(&options, fileData, dataSize, &data);
if (result == cgltf_result_success) if (result == cgltf_result_success)
{ {
@ -3713,7 +3701,7 @@ static Model LoadGLTF(const char *fileName)
} }
else TRACELOG(LOG_WARNING, "MODEL: [%s] Failed to load glTF data", fileName); else TRACELOG(LOG_WARNING, "MODEL: [%s] Failed to load glTF data", fileName);
RL_FREE(buffer); RL_FREE(fileData);
return model; return model;
} }