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+ −