Skip to main content
Skip table of contents

(v13) CMM instantiation

This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP


The Harlequin RIP will normally create one instance for each CMM API implementation registered.

The RIP allocates memory for a sw_cmm_instance structure, initializes the implementation and mem fields, and then calls the implementation’s construct() method. The construct() method is expected to initialize the remaining fields in the sw_cmm_instance structure.

The instance structure may be subclassed to hold private data by increasing the instance size presented in the sw_cmm_api’s info substructure. The RIP will allocate the size of data requested for the instance, the implementation methods can cast down the sw_cmm_instance pointers to a subclassed structure pointer.

The CMM instance structure may be destroyed and re-created if it is not in use during low memory situations.

CMM optional capabilities

sw_cmm_result (RIPCALL *construct)(sw_cmm_instance *instance) ;

Some of the information returned will be used by the RIP to determine whether a particular profile or transform can be handled by the alternate CMM which may be used by the RIP in various ways. The Skin may not present ICC profiles in a user interface if it knows that the ICC profile is not supported by the alternate CMM. In other cases the RIP will, if appropriate, use this information to divert color conversions through the built-

in CMM. The CMM implementation’s construct() method is expected to initialize some fields in the sw_cmm_instance structure. These fields are used by the RIP to determine the capabilities of the alternate CMM

As an example, an alternate CMM may not support color space conversion profiles and thus set the corresponding field to FALSE, any such profiles encountered in a job will be processed using the built-in CMM. In the event that the built-in CMM must be used in this way, the RIP will continue to use the alternate CMM for other ICC profile classes when they are supported.

All of the fields should be set by the alternate CMM according to the capabilities of that CMM.


TEXT
                            support_input_profiles
                            support_output_profiles
                            support_devicelink_profiles
                            support_display_profiles
                            support_colorspace_profiles
                            support_abstract_profiles


Each of this collection of parameters is set according to whether the corresponding ICC profile class is supported. The ICC profile class is determined from the header of an ICC profile. If a particular ICC profile is not supported by the alternate CMM, the RIP will use its built-in CMM to transform colors when that ICC profile is required.

NOTE:  In some profiles, the declared profile class is obviously incompatible with the tags present in the profile. The Harlequin RIP will attempt to deduce the correct profile class in such cases.

support_named_color_profiles

This determines support for named color profiles.

support_ICC_v4

Indicates whether the alternate CMM supports ICC v4 profiles. If it does not, the RIP will use its built-in CMM to transform colors when an ICC v4 profile is required.

support_black_point_compensation

Indicates whether the alternate CMM has an implementation of black point compensation. The RIP does not use this information, but it may be used by the skin.

support_extra_absolute_intents

Indicates whether the alternate CMM can support the non-standard rendering intents of AbsolutePerceptual and AbsoluteSaturation. These are derived from the Perceptual and Saturation tables of an ICC profile in the same way that AbsoluteColorimetric is derived from RelativeColorimetric, that is, by scaling PCS values to the illuminant XYZ values in the profile.

maximum_input_channels

The maximum number of input color channels that are supported by the alternate CMM of any ICC profile. In this context, the meaning of input and output varies depending on the conversion. For the device to PCS

conversion, the input will be the device and the output the PCS. Viceversa for the PCS to device conversion. A value of zero means that the RIP should assume there is no maximum value.

Note that the alternate CMM may still reject a profile when an attempt is made to open it.

maximum_output_channels

The maximum number of output channels that are supported by the alternate CMM of any ICC profile. In this context, the meaning of input and output varies depending on the conversion. For the device to PCS conversion, the input will be the device and the output the PCS. Viceversa for the PCS to device conversion. A value of zero means that the RIP should assume there is no maximum value.

allow_retry

If set to TRUE, the RIP will retry the color transform using the built-in CMM in the event of an alternate CMM returning an error when opening profiles or transforms. For example, the call to open_profile may fail because the ICC profile is an unsupported color space conversion profile (despite the profile header declaring a different profile class). If allow_retry is FALSE, the RIP will fail the job when encountering such errors.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.