Here comes what I have put in CinePaints standard plugin header :

void       gimp_image_set_icc_profile_by_name (gint32   image_ID,
                                               gchar   *data);
void       gimp_image_set_icc_profile_by_mem  (gint32   image_ID,
                                               gint     size,
                                               gchar   *data);
void       gimp_image_set_lab_profile         (gint32   image_ID);
void       gimp_image_set_xyz_profile         (gint32   image_ID);
void       gimp_image_set_srgb_profile        (gint32   image_ID);
gboolean   gimp_image_has_icc_profile         (gint32   image_ID);
char*      gimp_image_get_icc_profile_by_mem  (gint32   image_ID,
                                               gint    *size);
char*      gimp_image_get_icc_profile_info    (gint32   image_ID);
char*      gimp_image_get_icc_profile_pcs     (gint32   image_ID);
char*      gimp_image_get_icc_profile_color_space_name  (gint32   image_ID);
char*      gimp_image_get_icc_profile_device_class_name (gint32   image_ID);

gint32     gimp_display_get_cms_intent        (gint32   display_ID);
void       gimp_display_set_cms_intent        (gint32   display_ID,
                                               gint32   intent);
gint32     gimp_display_get_cms_flags         (gint32   display_ID);
void       gimp_display_set_cms_flags         (gint32   display_ID,
                                               gint32   flags);
gint32     gimp_display_is_colormanaged       (gint32   display_ID);
void       gimp_display_set_colormanaged      (gint32   display_ID,
                                               gboolean True_False);
void       gimp_display_all_set_colormanaged  (gboolean True_False);
void       gimp_display_image_set_colormanaged(gint32   display_ID,
                                               gboolean True_False);

flags and intents are identical to lcms.h and at least flags are specific
to lcms. About proofing: as CinePaints print plug-in shows the separated
CMYK image as an softproof on output, there is currently no function for
proofing in the API.

The namespace macro below was intended to show different examples.
The real life part would be the first define. Ifdefs are not! needed
related to an color management API.

I expect a lot of ICC handling plug-ins, once CMS is established in more
applications :)


Am 15.08.04, 00:21 +0200 schrieb Sven Neumann:

> Hi,
> Kai-Uwe Behrmann <[EMAIL PROTECTED]> writes:
> > As long as there is somthing simple possible like:
> >
> > #define cinepaint_func gimp-func
> >
> > #namespace_GIMP
> >   gimp_func (whatever_You_like, arguments);
> > #endif
> > #namespace_CinePaint
> >   cinepaint_func (whatever_You_like, arguments);
> > #endif
> >
> > possible, I think all is fine.
> I wouldn't call such a mess fine. But if you think so...
> The real question here is if the API is sane, fits our needs and goes
> well with the rest of the GIMP API.  So if you want to suggest that we
> consider something similar to the CinePaint API, you should show us
> that API.
> > Do You have any concerns using gimp_func(....) in CinePaint?
> Yes indeed and I have expressed these concerns in the past. The GIMP
> namespace and the GIMP fileformats are reserved for use by the GIMP
> project and shouldn't be abused by other apps. Do I really need to
> explain the purpose of namespaces?
> Sven

Gimp-developer mailing list

Reply via email to