Hi, yesterday I suggested the following struct: > struct GimpColorConfig > { > GObject parent_instance; > > gboolean enabled; > > gchar *monitor_profile; > gchar *working_profile; > gchar *proof_profile; > GimpColorIntent render_intent; > GimpColorIntent proofing_intent; > }; What we didn't talk about yet is whether the profiles are filenames that specify what ICC color profile to load or whether they are pointers to color profiles loaded into memory. I suggest that we use filenames here and let the modules deal with loading the profile. Is loading a profile using lcms an expensive task or is the file just mmap'ed? If it turns out to be a problem we could consider to add a color profile cache that is shared by all display filters and color selectors. The profiles would be identified by their filename so the struct that I suggested should be good enough. For image-specific profiles, I suggest that we continue to do what we've been doing so far and that's attaching the loaded profile to the image using the "icc-profile" parasite. Sven