Documentation Errors
1 messages in this thread
I am reviewing the IPAS4 reference and comparing with the IPAS3, and noticed
errors in both manuals with respect to internal consistency as well as an
inconsistency with the structure definition of EXPbuf in EXPRTN.H.
typedef struct
{
ulong magic; /* Magic number */
int opcode; /* What .EXP wants to do in 3D Studio */
int usercode; /* What .EXP wants to do when it gets back */
int status; /* How it all came out */
union /* Parameters for the opcodes & returned values */
{
int integer;
char string[256];
VertIO vert;
VListIO vlist;
FaceIO face;
FListIO flist;
ObjectIO object;
MtlIO mtl;
ProgIO progress;
Alert alert;
Slider1 s1;
Slider2 s2;
Cfigdata cfig;
Ixpdata ixp;
Sxpdata sxp;
FrameInfo finfo;
AXPViewInfo vinfo;
ExtInfo exts;
FieldInfo fldinfo;
Mscale msc;
Matrix matrix;
char nodename[32];
GammaCapable gamma;
BXPLoadStart iload1;
BXPLoadFinish iload2;
BXPAnimate ianim;
BXPInfo iinfo;
BXPSaveImage isave;
GFXInfo ginfo;
KXPInfo kinfo;
KXPPick kpick;
PXPInfo pinfo;
AppDataInfo apinfo;
} data;
VersInfo ver; /* Version info added for 3DS >2.0 */
} EXPbuf;
The manuals (both) never describes the structure BXPAnimate and its "usage"
with respect to client functions. Rather both manuals erroneously describe the
structure BXPColor as if it is a potential member of the data union.
The sample code cyc.c tends to imply that the data union "contains" the
structure BXPAnimate whenever the client function ClientGetFrame is called,
which makes me wonder whether and how the "frame" is made known to a BXP which
will save animated files, as ClientSaveImage receives the structure
BXPSaveImage which has not frame information. Is it perhaps expected that this
information is non-relevant and the "filename" will be unique for each frame of
the animation when "writing".
Say for example I am writing one MPEG file, with multiple frames, using a BXP,
then how does the BXP module become aware (at or near frame 1) as to exactly
how many frames to expect? I just can't discern this from the existing
documentation, and perhaps this info is missing due to the in progress state of
the software and the manuals.