![]() |
PATH![]() |
![]() ![]() |
When a ColorSync function performs a color matching or color checking operation, it must determine which CMM to use. You typically pass source and destination profiles to a function, either directly or as part of a color world--an abstract private data structure you create by calling either the NCWNewColorWorld
, the
CWConcatColorWorld
, or the
CWNewLinkProfile
function. When you call one of the latter two functions to create a color world, you use the
CMConcatProfileSet
data structure to specify a series of one or more profiles for the color world.
A profile header contains a CMMType field that specifies a CMM for that profile. For example, Signature of ColorSync's Default Color Management Module describes a signature for the CMMType field that specifies ColorSync's default CMM. When you set up a CMConcatProfileSet data structure to specify a series of profiles, you set the structure's keyIndex field to specify the zero-based index of the profile within the array of profiles whose CMM (as indicated by its CMMType field) ColorSync should use. A CMM specified by this mechanism is called a key CMM .
As we have seen, an operation may use more than one profile and there are multiple factors that can affect the choice of a CMM. To deal with these factors, ColorSync uses the following algorithm to select a CMM:
If the preferred CMM is not available or cannot handle an operation, ColorSync uses the default CMM, as described in step 4.
CWConcatColorWorld
or
CWNewLinkProfile
, ColorSync uses the key CMM.If the key CMM is not available or cannot handle an operation, ColorSync uses the default CMM, as described in step 4.
NCWNewColorWorld
(and therefore
without
a
CMConcatProfileSet
structure), ColorSync uses an
arbitrated CMM
or CMMs--a CMM or CMMs selected from the source and destination profiles as described in
Selecting a CMM by the Arbitration Algorithm
.If an arbitrated CMM is not available or cannot handle an operation, ColorSync uses the default CMM, as described in step 4.
kDefaultCMMSignature
.