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.
--
⑨