[Openicc] ICC Profiles In X Specification
Kai-Uwe Behrmann
ku.b at gmx.de
Fri Oct 5 13:58:59 PDT 2007
Am 05.10.07, 22:09 +0200 schrieb Sven Neumann:
> I am having a small problem interpretating the latest version of the
> ICC Profiles In X Specification as found on:
>
> http://burtonini.com/computing/x-icc-profiles-spec-latest.html
>
> The spec suggests that the _ICC_PROFILE atom is set on the root window
> of the default (first) screen. It also says that for root windows
The spec says nothing about a default screen.
> spanning more than one screen, as typical in Xinerama multihead
Sorry. This is easily getting difficult. A root window may span miltiple
monitors and contain a number of Xinerama screens, which are quite
different handled than traditional screens. A screen has one root window
associated. Thus a screen can contain multiple Xinerama screens but not
the other way around.
> configurations, an atom for each screen is added holding the appropriate
> ICC profile. This property does not have to be set on every screen. When
> this property is not set on a screen, the screen is uncalibrated, and no
> colour correction for display should be done.
... or correcting to sRGB would be more appropriate for non sRGB images in
a application.
> OK, so let's assume we have two monitors, the primary one is calibrated,
> the secondary isn't. So we have _ICC_PROFILE and _ICC_PROFILE_1 set. If
You wite here about a Xinerama setup with one screen and one root
window on it, spanning two monitors and running Xinerama on it to
distinguish the two monitors.
No. Then _ICC_PROFILE contains the monitor 0 profile and _ICC_PROFILE_1 is
not set. The spec says the _ICC_PROFILE name is followed by a underscore
and the Xinerama screen number for Xinerama screens starting with
Xinerama screen number one. This implies Xinerama screen number zero has
no underscore and 0, thus performing compatibility with revision 0.1 of
the spec for single monitor setups.
I am afraid the spec is not clear about the term screen versus Xinerama
screen.
> I want to determine the settings for the primary monitor, all is fine. I
> can query for _ICC_PROFILE_1 and be done with it. Now if the window is
> on the second monitor, I would query for _ICC_PROFILE_2 which is not
> set. Now since ICC_PROFILE is set, I can't tell whether the system
> supports revision 0.2 of the spec and wants no correction for this
> monitor or if it only implements revision 0.1 and _ICC_PROFILE should be
> applied to both monitors.
Well, this ambiguity is handled by the spec revision 0.2. Multi monitor
setups where not an issue at all in revision 0.1. So there is no question
about to support v0.1 for multi monitor setups. It would not solve such a
ambiguity.
> How am I supposed to handle this? I could assume that one profile for
> both monitors is not a good idea and don't do color correction for the
> second monitor. But then consider the case where monitor one is
> uncalibrated. Since I also want to support systems that only implement
> revision 0.1 of the spec, I need to query for _ICC_PROFILE in case that
> _ICC_PROFILE_1 is unset. Since revision 0.2 requires that this is set, I
> can't tell if the primary monitor should be color corrected or not.
It would be interessting to know whether systems support the
_ICC_PROFILE(_x) atom.
We had no discussion here on list about monitor calibration dialogs,
scripts and the like in reality, except about the Oyranos project.
New implementations should avoid using spec revision 0.1 at all.
> I am probably just missing something or are misinterpreting the spec.
> Can anyone help?
Possibly the specification can include a _ICC_IN_X_VERSION atom to avoid
such things in the future.
Thanks for bringing this up.
kind regards
Kai-Uwe Behrmann
--
developing for colour management
www.behrmann.name + www.oyranos.org + www.cinepaint.org
More information about the openicc
mailing list