shithub: libobj

Download patch

ref: 06bb0cf6d6dfc0e3591222ee8564f5f1ca9aa054
parent: 7be2c8b1026096abd0bcfc9ea76fcdecaa2b2ea2
author: rodri <rgl@antares-labs.eu>
date: Sun Jun 22 14:36:48 EDT 2025

update the manual (not done yet)

i added references to the API routines that were previously
internal, but i didn't document their function and behavior.

--- a/obj.2.man
+++ b/obj.2.man
@@ -1,13 +1,10 @@
 .TH OBJ 2
 .SH NAME
-objparse,
-objfree,
-objmtlparse,
-objmtlfree,
-objexport,
-OBJMaterlistfmt,
-OBJfmt,
-OBJfmtinstall
+objaddvertex, objaddelem, objallocelem, objaddelemidx, objfreeelem,
+objallocobject, objfreeobject, objpushobject, objgetobject,
+objfreetexture, objallocmt, objfreemt, objallocmtl, objaddmtl,
+objgetmtl, objparse, objfree, objmtlparse, objmtlfree, objexport,
+OBJMaterlistfmt, OBJfmt, OBJfmtinstall
 \- OBJ parser
 .SH SYNOPSIS
 .ta 0.7i +0.7i +0.7i +0.7i +0.7i +0.7i +0.7i
@@ -127,15 +124,30 @@
 	OBJMaterlist *materials;
 };
 
-OBJ *objparse(char *path);
-void objfree(OBJ *obj);
-OBJMaterlist *objmtlparse(char *path);
-void objmtlfree(OBJMaterlist *ml);
-int objexport(char *dstdir, OBJ *obj);
+void objaddvertex(OBJ *obj, OBJVertex v, int vtype)
+void objaddelem(OBJObject *o, OBJElem *e)
+OBJElem *objallocelem(int t)
+void objaddelemidx(OBJElem *e, int idxtab, int idx)
+void objfreeelem(OBJElem *e)
+OBJObject *objallocobject(char *n)
+void objfreeobject(OBJObject *o)
+void objpushobject(OBJ *obj, OBJObject *o)
+OBJObject *objgetobject(OBJ *obj, char *n)
+void objfreetexture(OBJTexture *t)
+OBJMaterial *objallocmt(char *name)
+void objfreemt(OBJMaterial *m)
+OBJMaterlist *objallocmtl(char *file)
+void objaddmtl(OBJMaterlist *ml, OBJMaterial *m)
+OBJMaterial *objgetmtl(OBJMaterlist *ml, char *name)
+OBJ *objparse(char *path)
+void objfree(OBJ *obj)
+OBJMaterlist *objmtlparse(char *path)
+void objmtlfree(OBJMaterlist *ml)
+int objexport(char *dstdir, OBJ *obj)
 
-int OBJMaterlistfmt(Fmt *f);
-int OBJfmt(Fmt *f);
-void OBJfmtinstall(void);
+int OBJMaterlistfmt(Fmt *f)
+int OBJfmt(Fmt *f)
+void OBJfmtinstall(void)
 .EE
 .SH DESCRIPTION
 This library provides a parser for the Wavefront OBJ 3d scene
@@ -213,4 +225,7 @@
 .SH BUGS
 There are probably some in the parser. It should be simpler.
 .PP
-There really is no API (what a shame.)
+Objexport uses an internal 8KB buffer for fmt(2) writes that can
+overflow libthread stacks.  If you're getting weird errors with
+malloc(2) and friends after using it in your program, increase the
+mainstacksize.
--