From cb3716ffb584fe0f593b6f1669a8efdba1305104 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Tue, 29 Mar 2016 02:16:55 +1000 Subject: Added my version of libg3d and friends. --- src/others/mimesh/libg3d-0.0.8/doc/api/xml/iff.xml | 558 +++++++++++++++++++++ 1 file changed, 558 insertions(+) create mode 100644 src/others/mimesh/libg3d-0.0.8/doc/api/xml/iff.xml (limited to 'src/others/mimesh/libg3d-0.0.8/doc/api/xml/iff.xml') diff --git a/src/others/mimesh/libg3d-0.0.8/doc/api/xml/iff.xml b/src/others/mimesh/libg3d-0.0.8/doc/api/xml/iff.xml new file mode 100644 index 0000000..73b9ca6 --- /dev/null +++ b/src/others/mimesh/libg3d-0.0.8/doc/api/xml/iff.xml @@ -0,0 +1,558 @@ + + + + +iff +3 +LIBG3D Library + + + +iff +IFF file helper functions + + + + +Synopsis + + + +#include <g3d/iff.h> + +#define G3D_IFF_PAD1 +#define G3D_IFF_PAD2 +#define G3D_IFF_PAD4 +#define G3D_IFF_PAD8 +#define G3D_IFF_LE +#define G3D_IFF_LEN16 +#define G3D_IFF_SUBCHUNK_LEN16 +#define G3D_IFF_MKID (a,b,c,d) +gboolean g3d_iff_check (G3DStream *stream, + guint32 *id, + gsize *len); +gsize g3d_iff_read_chunk (G3DStream *stream, + guint32 *id, + gsize *len, + guint32 flags); +gpointer g3d_iff_handle_chunk (G3DIffGlobal *global, + G3DIffLocal *plocal, + G3DIffChunkInfo *chunks, + guint32 flags); +gboolean g3d_iff_chunk_matches (guint32 id, + gchar *tid); +gboolean g3d_iff_read_ctnr (G3DIffGlobal *global, + G3DIffLocal *local, + G3DIffChunkInfo *chunks, + guint32 flags); +gchar* g3d_iff_id_to_text (guint32 id); +FILE* g3d_iff_open (const gchar *filename, + guint32 *id, + guint32 *len); +int g3d_iff_readchunk (FILE *f, + guint32 *id, + guint32 *len, + guint32 flags); +gboolean (*G3DIffChunkCallback) (G3DIffGlobal *global, + G3DIffLocal *local); +#define g3d_iff_chunk_callback + G3DIffChunkInfo; +#define g3d_iff_chunk_info + G3DIffGlobal; +#define g3d_iff_gdata + G3DIffLocal; +#define g3d_iff_ldata + + + + + + + + + + + + +Description + +These are helper functions to read data from the Interchange File Format +(IFF). + + + + + + +Details + +G3D_IFF_PAD1 +G3D_IFF_PAD1#define G3D_IFF_PAD1 0x01 + + +No padding is done after chunks. + + + + +G3D_IFF_PAD2 +G3D_IFF_PAD2#define G3D_IFF_PAD2 0x02 + + +Chunks are 2-byte aligned + + + + +G3D_IFF_PAD4 +G3D_IFF_PAD4#define G3D_IFF_PAD4 0x04 + + +Chunks are 4-byte aligned + + + + +G3D_IFF_PAD8 +G3D_IFF_PAD8#define G3D_IFF_PAD8 0x08 + + +Chunks are 8-byte aligned + + + + +G3D_IFF_LE +G3D_IFF_LE#define G3D_IFF_LE 0x40 /* little endian */ + + +The file has little-endian data. + + + + +G3D_IFF_LEN16 +G3D_IFF_LEN16#define G3D_IFF_LEN16 0x20 + + +All chunks have 16-bit sizes. + + + + +G3D_IFF_SUBCHUNK_LEN16 +G3D_IFF_SUBCHUNK_LEN16#define G3D_IFF_SUBCHUNK_LEN16 0x10 + + +All chunks except the toplevel ones have 16-bit sizes. + + + + +G3D_IFF_MKID() +G3D_IFF_MKID#define G3D_IFF_MKID(a,b,c,d) + +Generate an IFF chunk identifier from character representation, e.g. +G3D_IFF_MKID('F','O','R','M'). + + + +a : + first byte + +b : + second byte + +c : + third byte + +d : + fourth byte + + + +g3d_iff_check () +g3d_iff_checkgboolean g3d_iff_check (G3DStream *stream, + guint32 *id, + gsize *len); + +Checks a stream for a valid IFF signature and reads the top level container. + + + +stream : + stream containing IFF file to check + +id : + top level ID (out) + +len : + length of top level container (out) + +Returns : TRUE on success (valid IFF), FALSE else + + + +g3d_iff_read_chunk () +g3d_iff_read_chunkgsize g3d_iff_read_chunk (G3DStream *stream, + guint32 *id, + gsize *len, + guint32 flags); + +Reads one chunk header from an IFF file. + + + +stream : + stream to read from + +id : + ID of chunk (out) + +len : + length of chunk (excluding header) (out) + +flags : + flags + +Returns : real length of chunk including header and possible padding byte + + + +g3d_iff_handle_chunk () +g3d_iff_handle_chunkgpointer g3d_iff_handle_chunk (G3DIffGlobal *global, + G3DIffLocal *plocal, + G3DIffChunkInfo *chunks, + guint32 flags); + +Handle an IFF chunk based on chunk description. + + + +global : + global data + +plocal : + local data of parent chunk, must not be NULL + +chunks : + chunk description list + +flags : + IFF flags + +Returns : level object for siblings, may be NULL. + + + +g3d_iff_chunk_matches () +g3d_iff_chunk_matchesgboolean g3d_iff_chunk_matches (guint32 id, + gchar *tid); + +Check whether id and tid match. + + + +id : + IFF identifier + +tid : + textual representation of identifier + +Returns : TRUE on match, FALSE else. + + + +g3d_iff_read_ctnr () +g3d_iff_read_ctnrgboolean g3d_iff_read_ctnr (G3DIffGlobal *global, + G3DIffLocal *local, + G3DIffChunkInfo *chunks, + guint32 flags); + +Read subchunks in current chunk and handle them appropriately. + + + +global : + global data + +local : + local data of current chunk, must not be NULL + +chunks : + chunk description list + +flags : + IFF flags + +Returns : TRUE on success, FALSE else. + + + +g3d_iff_id_to_text () +g3d_iff_id_to_textgchar* g3d_iff_id_to_text (guint32 id); + +Get the text representation of an IFF chunk identifier. + + + +id : + an IFF identifier + +Returns : a newly allocated string containing the text identifier. + + + +g3d_iff_open () +g3d_iff_openFILE* g3d_iff_open (const gchar *filename, + guint32 *id, + guint32 *len); + +Opens an IFF file, checks it and reads its top level container. + + + +filename : + file name of IFF file + +id : + top level ID (out) + +len : + length of top level container (out) + +Returns : the file pointer of open file or NULL in case of an error + + + +g3d_iff_readchunk () +g3d_iff_readchunkint g3d_iff_readchunk (FILE *f, + guint32 *id, + guint32 *len, + guint32 flags); + +Reads one chunk header from an IFF file. + + + +f : + the open IFF file pointer + +id : + ID of chunk (out) + +len : + length of chunk (excluding header) (out) + +flags : + flags + +Returns : real length of chunk including header and possible padding byte + + + +G3DIffChunkCallback () +G3DIffChunkCallbackgboolean (*G3DIffChunkCallback) (G3DIffGlobal *global, + G3DIffLocal *local); + +IFF callback function prototype. + + + +global : + the global data + +local : + the local data + +Returns : TRUE on success, FALSE else. + + + +g3d_iff_chunk_callback +g3d_iff_chunk_callback#define g3d_iff_chunk_callback G3DIffChunkCallback + + +IFF chunk callback (deprecated). + + + + +G3DIffChunkInfo +G3DIffChunkInfotypedef struct { + gchar *id; + gchar *description; + gboolean container; + G3DIffChunkCallback callback; +} G3DIffChunkInfo; + + +A chunk type description. + + + + +gchar *id; + identifier of chunk + + + +gchar *description; + human-readable description of chunk type + + + +gboolean container; + TRUE if this chunk contains sub-chunks + + + +G3DIffChunkCallback callback; + function to be called if such a chunk is found + + + + +g3d_iff_chunk_info +g3d_iff_chunk_info#define g3d_iff_chunk_info G3DIffChunkInfo + + +IFF chunk description (deprecated). + + + + +G3DIffGlobal +G3DIffGlobaltypedef struct { + G3DContext *context; + G3DModel *model; + G3DStream *stream; + guint32 flags; + gpointer user_data; + FILE *f; + long int max_fpos; +} G3DIffGlobal; + + +The plugin-global data to be given to IFF callback functions. + + + + +G3DContext *context; + a valid context + + + +G3DModel *model; + a model + + + +G3DStream *stream; + the stream to read model from + + + +guint32 flags; + IFF flags + + + +gpointer user_data; + to be used by plugin + + + +FILE *f; + file to read model from (DEPRECATED) + + + +long int max_fpos; + maximum file position (DEPRECATED) + + + + +g3d_iff_gdata +g3d_iff_gdata#define g3d_iff_gdata G3DIffGlobal + + +IFF global data (deprecated). + + + + +G3DIffLocal +G3DIffLocaltypedef struct { + guint32 id; + guint32 parent_id; + gpointer object; + gint32 level; + gpointer level_object; + gint32 nb; + gboolean finalize; +} G3DIffLocal; + + +The function-local data for IFF callback functions. + + + + +guint32 id; + chunk identifier + + + +guint32 parent_id; + parent chunk identifier + + + +gpointer object; + an object set by parent callbacks, may be NULL + + + +gint32 level; + level of chunk + + + +gpointer level_object; + object shared by callbacks on the same level, may be NULL + + + +gint32 nb; + number of bytes remaining in chunk, has to be decremented after +correctly after reading from stream + + + +gboolean finalize; + for container chunks the callback function is called before +and after processing possible sub-chunks, the second time finalize is set +to TRUE + + + + +g3d_iff_ldata +g3d_iff_ldata#define g3d_iff_ldata G3DIffLocal + + +IFF local data (deprecated). + + + + + + + + + + -- cgit v1.1