diff options
author | rodri <rgl@antares-labs.eu> | 2024-05-12 20:32:05 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2024-05-12 20:32:05 +0000 |
commit | dc735cec54a148d848932c71e26cd9fbe445e173 (patch) | |
tree | 75d3ea4568b4a151fbcae08ba824f129a652044c | |
parent | 0cd80fe628fc0d8a3672f1fd1d3cfa96c0b0ea2e (diff) | |
download | libgraphics-dc735cec54a148d848932c71e26cd9fbe445e173.tar.gz libgraphics-dc735cec54a148d848932c71e26cd9fbe445e173.tar.bz2 libgraphics-dc735cec54a148d848932c71e26cd9fbe445e173.zip |
add a name property to Material.
-rw-r--r-- | graphics.h | 1 | ||||
-rw-r--r-- | scene.c | 10 |
2 files changed, 10 insertions, 1 deletions
@@ -102,6 +102,7 @@ struct LightSource struct Material { + char *name; Color ambient; Color diffuse; Color specular; @@ -154,6 +154,11 @@ loadobjmodel(Model *m, OBJ *obj) mtl = &m->materials[m->nmaterials-1]; memset(mtl, 0, sizeof *mtl); + if(objmtl->name != nil){ + mtl->name = strdup(objmtl->name); + if(mtl->name == nil) + sysfatal("strdup: %r"); + } mtl->ambient.r = objmtl->Ka.r; mtl->ambient.g = objmtl->Ka.g; mtl->ambient.b = objmtl->Ka.b; @@ -306,8 +311,11 @@ delmodel(Model *m) freememimage(m->tex); if(m->nor != nil) freememimage(m->nor); - if(m->nmaterials > 0) + if(m->nmaterials > 0){ + while(m->nmaterials--) + free(m->materials[m->nmaterials].name); free(m->materials); + } if(m->nprims > 0) free(m->prims); free(m); |