shithub: libgraphics

Download patch

ref: dc735cec54a148d848932c71e26cd9fbe445e173
parent: 0cd80fe628fc0d8a3672f1fd1d3cfa96c0b0ea2e
author: rodri <rgl@antares-labs.eu>
date: Sun May 12 16:32:05 EDT 2024

add a name property to Material.

--- a/graphics.h
+++ b/graphics.h
@@ -102,6 +102,7 @@
 
 struct Material
 {
+	char *name;
 	Color ambient;
 	Color diffuse;
 	Color specular;
--- a/scene.c
+++ b/scene.c
@@ -154,6 +154,11 @@
 			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 @@
 		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);