Configuration options in libmng | |
=============================== | |
The library is fairly configurable through the use of a number of defines. | |
Please note however that certain defines are for internal use only. | |
The following list gives a summary of options that can be used externally to | |
define the functionality of the library: | |
======================================== | |
#define MNG_BUILD_DLL | |
This is used to indicate that a "standard" DLL should result from compiling | |
the library. Please note the remarks in README.dll if you intend to work | |
with the library as a DLL. The purpose of this option is to ensure that | |
DLL builds have the same set of functions. | |
#define MNG_BUILD_SO | |
This is used to indicate that a "standard" shared library (SO) should result | |
from a compilation. The purpose of this option is to ensure that all | |
shared libraries generated this way will have the same set of functions. | |
#define MNG_USE_DLL / #define MNG_USE_SO | |
These should be used when including the library header in the compilation | |
of an application to indicate that the compiler/linker must take the | |
necessary steps to make the binary executable to use the standard DLL | |
or shared library (SO). | |
#define MNG_SKIP_ZLIB / #define MNG_SKIP_LCMS / #define MNG_SKIP_IJG6B | |
Use these in conjunction with MNG_USE_DLL / MNG_USE_SO. This is useful if | |
you only need the external definitions of the MNG library and not the others, | |
which will speed up the compilation process. | |
#define MNG_SUPPORT_FULL / #define MNG_SUPPORT_LC / #define MNG_SUPPORT_VLC | |
These can be used to indicate the level of MNG spec compliance required. | |
Currently only full MNG compliance is supported. | |
#define MNG_SUPPORT_IJG6B | |
This can be used to indicate if JNG support is required. This option will | |
include the IJG JPEG-library. Note that MNG_SUPPORT_FULL will automatically | |
set this option. Use this only if you need JNG support with MNG-(V)LC. | |
#define MNG_FULL_CMS / #define MNG_GAMMA_ONLY / #define MNG_NO_CMS / | |
#define MNG_APP_CMS | |
These indicate the color-correction support level of the library. | |
If you are on a platform that supports lcms (Little CMS by Marti Maria Saguar) | |
then it is highly recommended to define MNG_FULL_CMS. | |
If your platform has it's own CMS then select MNG_APP_CMS and be sure to | |
include the appropriate callbacks in your app. | |
In all other cases it is recommended to define MNG_GAMMA_ONLY. | |
#define MNG_SUPPORT_READ / #define MNG_SUPPORT_WRITE / | |
#define MNG_SUPPORT_DISPLAY | |
These indicate the high-level support for reading, writing and/or | |
displaying files. Note that in order to display a file, you'll need to read | |
it first. (yes, really!) | |
#define MNG_STORE_CHUNKS | |
This indicates that the library should store chunk-information when reading | |
a file. This information can then be processed through the | |
MNG_ITERATE_CHUNKS() function. Note that you must specify this option if | |
you want to create and write a new file. | |
#define MNG_ACCESS_CHUNKS | |
This is used to indicate that the app may need access to internally stored | |
chunk information. MNG_STORE_CHUNKS must be defined as well for this option | |
to function properly. | |
#define MNG_INTERNAL_MEMMNGMT | |
You can use this to have the library handle it's own memory allocation and | |
deallocation through the "standard" memory functions. This option is turned | |
off by default, which means your app must define the memory callbacks. | |
#define MNG_ERROR_TELLTALE | |
Set this on to allow human-readable error-messages to be included in the | |
library and the error function and callback. | |
#define MNG_BIGENDIAN_SUPPORTED | |
This option should be used to indicate the hardware is based on big endian | |
integers. | |
#define MNG_SUPPORT_TRACE / #define MNG_TRACE_TELLTALE | |
These two can be used when debugging an app. You'll need to have the trace | |
callback setup also. This allows for a rather thorough investigation of the | |
libraries function paths. | |
======================================== | |
Any other optional defines you may encounter are for internal use only. | |
please do not specify them externally. In case of doubt, consult the | |
support email lists. More info can be found on http://www.libmng.com |