X Color Management Core API's(3)

NAME
X Color Management Core API's -

  Data Structures
struct XcolorProfile
struct XcolorRegion

  Macros
#define XCM_COLOR_PROFILES '_ICC_COLOR_PROFILES'
#define XCM_COLOR_REGIONS '_ICC_COLOR_REGIONS'
#define XCM_COLOR_OUTPUTS '_ICC_COLOR_OUTPUTS'
#define XCM_COLOR_DESKTOP '_ICC_COLOR_DESKTOP'
#define XCM_DEVICE_PROFILE '_ICC_DEVICE_PROFILE'

  Enumerations
enum { XCM_COLOR_SERVER_REGIONS = 0x01, XCM_COLOR_SERVER_PROFILES = 0x02, XCM_COLOR_SERVER_DISPLAY_ADVANCED = 0x04, XCM_COLOR_SERVER_OUTPUTS = 0x08, XCM_COLOR_SERVER_MANAGEMENT = 0x10 }

  Functions
int XcolorProfileUpload (Display *dpy, XcolorProfile *profile)
Uploads the profile into all screens of the display.
int XcolorProfileDelete (Display *dpy, XcolorProfile *profile)
Decreases the ref-count of the profile.
int XcolorRegionInsert (Display *dpy, Window win, unsigned long pos, XcolorRegion *region, unsigned long nRegions)
Inserts the supplied regions into the stack.
XcolorRegion * XcolorRegionFetch (Display *dpy, Window win, unsigned long *nRegions)
Fetches the existing regions.
int XcolorRegionDelete (Display *dpy, Window win, unsigned long start, unsigned long count)
Deletes regions.
int XcolorRegionActivate (Display *dpy, Window win, unsigned long start, unsigned long count)
Activates regions.
int XcmColorServerCapabilities (Display *dpy)
informs which colour server services are available

Detailed Description

Macro Definition Documentation

  #define XCM_COLOR_DESKTOP '_ICC_COLOR_DESKTOP'
The XCM_COLOR_DESKTOP macro The atom is attached on the root window to tell about a color servers activity. The content is of type XA_STRING and has four sections separated by a empty space char ' '. The _ICC_COLOR_DESKTOP atom is a string with following usages:

•   uniquely identify the colour server

•   tell the name of the colour server

•   tell the colour server is alive All sections are separated by one space char ' ' for easy parsing.

The first section contains the process id (pid_t) of the color server process, which has set the atom. The second section contains time since epoch GMT as returned by time(NULL). The thired section contains the bar '|' separated and surrounded capabilities:

•   ICP _ICC_COLOR_PROFILES - support per region profiles

•   ICM _ICC_COLOR_MANAGEMENT - color server is active

•   ICO _ICC_COLOR_OUTPUTS - support per window and output configuration

•   ICR _ICC_COLOR_REGIONS - support regions

•   ICA _ICC_COLOR_DISPLAY_ADVANCED - use CMS advanced settings, e.g. proofing

•   V0.3 indicates version compliance to the _ICC_Profile in X spec The fourth section contains the servers name identifier.

As of this specification the third section must contain ICR and the supported _ICC_PROFILE in X version.

A example of a valid atom might look like: _ICC_COLOR_DESKTOP(STRING) = '4518 1274001512 |ICR|ICM|V0.3| compiz_colour_desktop'

Referenced by XcmColorServerCapabilities(), XcmeContext_Setup(), and XcmeContext_Setup2().

  #define XCM_COLOR_OUTPUTS '_ICC_COLOR_OUTPUTS'
The XCM_COLOR_OUTPUTS macro is attached to windows and specifies on which output the window should look correctly. The type is XA_STRING.

Referenced by XcmeContext_Setup(), and XcmeContext_Setup2().

  #define XCM_COLOR_PROFILES '_ICC_COLOR_PROFILES'
The XCM_COLOR_PROFILES macro represents a atom name for under which XcolorProfile data can be stored.

Referenced by XcmeContext_Setup(), XcmeContext_Setup2(), XcolorProfileDelete(), and XcolorProfileUpload().

  #define XCM_COLOR_REGIONS '_ICC_COLOR_REGIONS'
The XCM_COLOR_REGIONS macro represents a atom name for under which XcolorRegions data can be stored.

Referenced by XcmeContext_Setup(), XcmeContext_Setup2(), XcmePrintWindowRegions(), xcmePrintWindowRegions(), XcolorRegionDelete(), XcolorRegionFetch(), and XcolorRegionInsert().

  #define XCM_DEVICE_PROFILE '_ICC_DEVICE_PROFILE'
The _ICC_DEVICE_PROFILE atom The atom will hold a native ICC profile with the exposed device characteristics at the compositing window manager level. The colour server shall if no _ICC_DEVICE_PROFILE(_xxx) is set, copy the _ICC_PROFILE(_xxx) profiles to each equivalent _ICC_DEVICE_PROFILE(_xxx) atom. The _ICC_PROFILE(_xxx) profiles shall be replaced by a sRGB ICC profile. The counting in the atoms (_xxx) name section follows the rules outlined in the ICC Profile in X recommendation. After finishing the session the the old state has to be recovered by copying any _ICC_DEVICE_PROFILE(_xxx) atoms content into the appropriate _ICC_PROFILE(_xxx) atoms and removing all _ICC_DEVICE_PROFILE(_xxx) atoms. The colour server must be aware about change property events indicating that a _ICC_PROFILE(_xxx) atom has changed by a external application and needs to move that profile to the appropriate _ICC_DEVICE_PROFILE(_xxx) atom and set the _ICC_PROFILE(_xxx) atom to sRGB as well. The modification of the _ICC_DEVICE_PROFILE(_xxx) atoms by external applications is undefined.

Enumeration Type Documentation

  anonymous enum
The XCM_COLOR_SERVER_ enums describe colour server capabilities as specified in XCM_COLOR_DESKTOP atom.

Enumerator

XCM_COLOR_SERVER_REGIONS
    _ICC_COLOR_REGIONS

XCM_COLOR_SERVER_PROFILES
    _ICC_COLOR_PROFILES

XCM_COLOR_SERVER_DISPLAY_ADVANCED
    _ICC_COLOR_DISPLAY_ADVANCED

XCM_COLOR_SERVER_OUTPUTS
    _ICC_COLOR_OUTPUTS

XCM_COLOR_SERVER_MANAGEMENT
    _ICC_COLOR_MANAGEMENT

Function Documentation

  int XcmColorServerCapabilities (Display *dpy)

informs which colour server services are available Function XcmColorServerCapabilities Query the capabilities of a colour server. In case no colour server is running, the function should return zero. The return value consists of a bit mask of XCM_COLOR_SERVER_ properties from the XCM_COLOR_DESKTOP atom.

References XCM_COLOR_DESKTOP, XCM_COLOR_SERVER_DISPLAY_ADVANCED, XCM_COLOR_SERVER_MANAGEMENT, XCM_COLOR_SERVER_PROFILES, and XCM_COLOR_SERVER_REGIONS.

  int XcolorProfileDelete (Display *dpy, XcolorProfile *profile)

Decreases the ref-count of the profile. Function XcolorProfileDelete You shouldn't use the profile anymore after this call because it could have been removed from the internal database in the compositing manager. If you do, nothing bad will happen, just that color management won't work on regions that use this profile.

References XcolorProfile::length, and XCM_COLOR_PROFILES.

  int XcolorProfileUpload (Display *dpy, XcolorProfile *profile)

Uploads the profile into all screens of the display. Function XcolorProfileUpload Uploads the profile into all screens of the display. Profiles are ref-counted inside the compositing manager, so make sure to call XcolorProfileDelete() before your application exits or when you don't need the profile anymore.

References XcolorProfile::length, and XCM_COLOR_PROFILES.

  int XcolorRegionActivate (Display *dpy, Windowwin, unsigned longstart, unsigned longcount)

Activates regions. Function XcolorRegionActivate Activates 'count' regions starting at positiong 'start' in the stack. Unlike the other functions it does not check whether 'start + count' extends beyond the stack end. To disable all regions pass zero to 'count'.

  int XcolorRegionDelete (Display *dpy, Windowwin, unsigned longstart, unsigned longcount)

Deletes regions. Function XcolorRegionDelete Deletes 'count' regions starting at 'start' in the stack. If 'start + count' in beyond the stack end, nothing will be done and the function returns '-1'.

References XCM_COLOR_REGIONS, and XcolorRegionFetch().

  XcolorRegion* XcolorRegionFetch (Display *dpy, Windowwin, unsigned long *nRegions)

Fetches the existing regions. Function XcolorRegionFetch Fetches the existing regions and returns an array of 'XcolorRegion'. After you're done, free the array using XFree(). The number of regions is put into 'nRegions'.

References XCM_COLOR_REGIONS.

Referenced by XcmePrintWindowRegions(), xcmePrintWindowRegions(), XcolorRegionDelete(), and XcolorRegionInsert().

  int XcolorRegionInsert (Display *dpy, Windowwin, unsigned longpos, XcolorRegion *region, unsigned longnRegions)

Inserts the supplied regions into the stack. Function XcolorRegionInsert Inserts the supplied regions into the stack at the position 'pos', shifting the existing profiles upwards in the stack. If 'pos' is beyond the stack end, nothing will be done and the function returns '-1'.

References XCM_COLOR_REGIONS, and XcolorRegionFetch().

Author

Generated automatically by Doxygen for Xcm-0.5.4 from the source code.