summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorraysan5 <[email protected]>2020-11-15 14:31:43 +0100
committerraysan5 <[email protected]>2020-11-15 14:31:43 +0100
commit4d5ee7953ccac5c1d59f4223899d3d6bffc329b8 (patch)
treec37488ea91fa68f9ec865c04ea2652fd1ab17594 /src
parentcb517d0050a24a3627191caf53e81ae2bab5a906 (diff)
downloadraylib-4d5ee7953ccac5c1d59f4223899d3d6bffc329b8.tar.gz
raylib-4d5ee7953ccac5c1d59f4223899d3d6bffc329b8.zip
Updated tinyobjloader
Diffstat (limited to 'src')
-rw-r--r--src/external/tinyobj_loader_c.h16
-rw-r--r--src/models.c19
2 files changed, 16 insertions, 19 deletions
diff --git a/src/external/tinyobj_loader_c.h b/src/external/tinyobj_loader_c.h
index 4bc77b88..9ecc2be2 100644
--- a/src/external/tinyobj_loader_c.h
+++ b/src/external/tinyobj_loader_c.h
@@ -114,8 +114,8 @@ typedef void (*file_reader_callback)(const char *filename, int is_mtl, const cha
* Returns TINYOBJ_ERR_*** when there is an error.
*/
extern int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes,
- unsigned char *num_shapes, tinyobj_material_t **materials,
- unsigned char *num_materials, const char *file_name, file_reader_callback file_reader,
+ unsigned int *num_shapes, tinyobj_material_t **materials,
+ unsigned int *num_materials, const char *file_name, file_reader_callback file_reader,
unsigned int flags);
/* Parse wavefront .mtl
@@ -130,7 +130,7 @@ extern int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes,
* Returns TINYOBJ_ERR_*** when there is an error.
*/
extern int tinyobj_parse_mtl_file(tinyobj_material_t **materials_out,
- unsigned char *num_materials_out,
+ unsigned int *num_materials_out,
const char *filename, const char *obj_filename, file_reader_callback file_reader);
extern void tinyobj_attrib_init(tinyobj_attrib_t *attrib);
@@ -799,7 +799,7 @@ typedef struct {
} LineInfo;
/* Find '\n' and create line data. */
-static int get_line_infos(const char *buf, unsigned char buf_len, LineInfo **line_infos, unsigned char *num_lines)
+static int get_line_infos(const char *buf, unsigned char buf_len, LineInfo **line_infos, unsigned int *num_lines)
{
unsigned char i = 0;
unsigned char end_idx = buf_len;
@@ -852,7 +852,7 @@ static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out,
tinyobj_material_t *materials = NULL;
int has_previous_material = 0;
const char *line_end = NULL;
- unsigned char num_lines = 0;
+ unsigned int num_lines = 0;
LineInfo *line_infos = NULL;
unsigned char i = 0;
char *buf = NULL;
@@ -1094,7 +1094,7 @@ static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out,
}
int tinyobj_parse_mtl_file(tinyobj_material_t **materials_out,
- unsigned char *num_materials_out,
+ unsigned int *num_materials_out,
const char *mtl_filename, const char *obj_filename, file_reader_callback file_reader) {
return tinyobj_parse_and_index_mtl_file(materials_out, num_materials_out, mtl_filename, obj_filename, file_reader, NULL);
}
@@ -1348,8 +1348,8 @@ static char *get_dirname(char *path)
int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes,
- unsigned char *num_shapes, tinyobj_material_t **materials_out,
- unsigned char *num_materials_out, const char *obj_filename, file_reader_callback file_reader,
+ unsigned int *num_shapes, tinyobj_material_t **materials_out,
+ unsigned int *num_materials_out, const char *obj_filename, file_reader_callback file_reader,
unsigned int flags) {
LineInfo *line_infos = NULL;
Command *commands = NULL;
diff --git a/src/models.c b/src/models.c
index 942f04c5..37718419 100644
--- a/src/models.c
+++ b/src/models.c
@@ -898,10 +898,8 @@ Material *LoadMaterials(const char *fileName, int *materialCount)
{
tinyobj_material_t *mats = NULL;
- int result = tinyobj_parse_mtl_file(&mats, &count, fileName);
- if (result != TINYOBJ_SUCCESS) {
- TRACELOG(LOG_WARNING, "MATERIAL: [%s] Failed to parse materials file", fileName);
- }
+ int result = tinyobj_parse_mtl_file(&mats, &count, fileName, NULL, NULL);
+ if (result != TINYOBJ_SUCCESS) TRACELOG(LOG_WARNING, "MATERIAL: [%s] Failed to parse materials file", fileName);
// TODO: Process materials to return
@@ -2999,8 +2997,10 @@ static Model LoadOBJ(const char *fileName)
// count the faces for each material
int* matFaces = RL_CALLOC(meshCount, sizeof(int));
- for (int mi=0; mi<meshCount; mi++) {
- for (int fi=0; fi<meshes[mi].length; fi++) {
+ for (int mi=0; mi<meshCount; mi++)
+ {
+ for (int fi=0; fi<meshes[mi].length; fi++)
+ {
int idx = attrib.material_ids[meshes[mi].face_offset + fi];
if (idx == -1) idx = 0; // for no material face (which could be the whole model)
matFaces[idx]++;
@@ -3078,11 +3078,8 @@ static Model LoadOBJ(const char *fileName)
model.materials[m].maps[MAP_DIFFUSE].texture = GetTextureDefault(); // Get default texture, in case no texture is defined
- if (materials[m].diffuse_texname != NULL) {
- model.materials[m].maps[MAP_DIFFUSE].texture = LoadTexture(materials[m].diffuse_texname); //char *diffuse_texname; // map_Kd
- } else {
- model.materials[m].maps[MAP_DIFFUSE].texture = GetTextureDefault();
- }
+ if (materials[m].diffuse_texname != NULL) model.materials[m].maps[MAP_DIFFUSE].texture = LoadTexture(materials[m].diffuse_texname); //char *diffuse_texname; // map_Kd
+ else model.materials[m].maps[MAP_DIFFUSE].texture = GetTextureDefault();
model.materials[m].maps[MAP_DIFFUSE].color = (Color){ (unsigned char)(materials[m].diffuse[0]*255.0f), (unsigned char)(materials[m].diffuse[1]*255.0f), (unsigned char)(materials[m].diffuse[2]*255.0f), 255 }; //float diffuse[3];
model.materials[m].maps[MAP_DIFFUSE].value = 0.0f;