This site is 100% GIF free! Powered by libmng!
libmng - The MNG reference library & related info


Technical design

Here is the functional design translated to actual C-modules.

Module design & naming

Note that some blocks do not have headers and that others consist only of headers. This is inherent to the functional design. Eg. the implementation of the main header file is split in 4 different modules. Now you could argue to put them in a single file, but I felt it more logical to split them up. In other cases the functional block only results in specification rather than implementation. Hence the result is a header-file only.

Also note that the layout of the image doesn't necessarily enforce certain dependancies. Eg. "libmng_read" calls functions in "libmng_chunk_io" which in turn calls functions in "libmng_zlib" which in turn calls functions in "libmng_pixels". "libmng_chunk_io" also calls functions in "libmng_display" which in turn calls functions in "libmng_pixels". It's a web, I know. C'est la vie! The general tendency however is top-to-bottom.