summaryrefslogtreecommitdiff
path: root/texture.c
diff options
context:
space:
mode:
Diffstat (limited to 'texture.c')
-rw-r--r--texture.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/texture.c b/texture.c
index 86b2cbd..c75f29c 100644
--- a/texture.c
+++ b/texture.c
@@ -122,9 +122,25 @@ alloctexture(int type, Memimage *i)
return t;
}
+Texture *
+duptexture(Texture *t)
+{
+ Texture *nt;
+
+ if(t == nil)
+ return nil;
+
+ nt = alloctexture(t->type, nil);
+ nt->image = dupmemimage(t->image);
+ return nt;
+}
+
void
freetexture(Texture *t)
{
+ if(t == nil)
+ return;
+
freememimage(t->image);
free(t);
}
@@ -161,6 +177,9 @@ freecubemap(Cubemap *cm)
{
int i;
+ if(cm == nil)
+ return;
+
for(i = 0; i < 6; i++)
freetexture(cm->faces[i]);
free(cm->name);