summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorraysan5 <[email protected]>2020-04-30 19:51:57 +0200
committerraysan5 <[email protected]>2020-04-30 19:51:57 +0200
commit4ca4326bf94cfbeb5c87fa0eb71c4d4a6646c8fe (patch)
tree4b10a5d2f58c7f242e3c3ccdf2275ed0c7101c7c
parent4b0386081037172222d91f0ccca93e5810fed84b (diff)
downloadraylib-4ca4326bf94cfbeb5c87fa0eb71c4d4a6646c8fe.tar.gz
raylib-4ca4326bf94cfbeb5c87fa0eb71c4d4a6646c8fe.zip
Review LoadGLTF() to read from memory buffer
-rw-r--r--src/models.c22
1 files changed, 5 insertions, 17 deletions
diff --git a/src/models.c b/src/models.c
index 2629ea70..8b013ea5 100644
--- a/src/models.c
+++ b/src/models.c
@@ -3521,27 +3521,15 @@ static Model LoadGLTF(const char *fileName)
Model model = { 0 };
// glTF file loading
- FILE *gltfFile = fopen(fileName, "rb");
+ unsigned int dataSize = 0;
+ unsigned char *fileData = LoadFileData(fileName, &dataSize);
- if (gltfFile == NULL)
- {
- 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);
+ if (fileData == NULL) return model;
// glTF data loading
cgltf_options options = { 0 };
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)
{
@@ -3713,7 +3701,7 @@ static Model LoadGLTF(const char *fileName)
}
else TRACELOG(LOG_WARNING, "MODEL: [%s] Failed to load glTF data", fileName);
- RL_FREE(buffer);
+ RL_FREE(fileData);
return model;
}