XSGIvcQueryChannelGammaMap man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



     XSGIvcStoreGammaColors(3)		     XSGIvcStoreGammaColors(3)

     NAME
	  XSGIvcStoreGammaColors8, XSGIvcStoreGammaColors16,
	  XSGIvcQueryGammaColors, XSGIvcQueryScreenGammaMaps,
	  XSGIvcQueryGammaMap, XSGIvcSetChannelGammaMap,
	  XSGIvcQueryChannelGammaMap - Set and query gamma correction
	  resources

     SYNOPSIS
	  #include <X11/extensions/XSGIvc.h>

	  Status XSGIvcQueryScreenGammaMaps(Display *display,
	      int screen,
	      int *gammaMapsReturn)

	  Status XSGIvcQueryGammaMap(Display *display,
	      int screen,
	      int gammaMap,
	      int *gammaSizeReturn,
	      int *gammaPrecisionReturn,
	      int *gammaMapAttributes)

	  void XSGIvcStoreGammaColors8(Display *display,
	      int screen,
	      int gammaMap,
	      int itemCount,
	      long loadTables
	      const unsigned char *gammaValue)

	  void XSGIvcStoreGammaColors16(Display *display,
	      int screen,
	      int gammaMap,
	      int itemCount,
	      long loadTables
	      const unsigned short *gammaValue)

	  Status XSGIvcQueryGammaColors(Display *display,
	      int screen,
	      int gammaMap,
	      int requestedColor,
	      int *itemCountReturn,
	      unsigned short **gammaValueReturn)

	  void XSGIvcSetChannelGammaMap(Display *display,
	      int screen,
	      int channel,
	      int gammaMap)

	  Status XSGIvcQueryChannelGammaMap(Display *display,
	      int screen,
	      int channel,
	      int *gammaMapReturn)

     Page 1					     (printed 7/20/06)

     XSGIvcStoreGammaColors(3)		     XSGIvcStoreGammaColors(3)

     PARAMETERS
	  gammaMapsReturn
		      Returns the number of gamma maps available on
		      the server.  Pass the address of a variable to
		      receive this value.

	  display     Specifies the connection to the X server.

	  screen      Specifies the screen of the X server.

	  channel     Specifies the channel number.

	  gammaMap    Specifies which of the gamma maps within the
		      server should be affected.  Gamma map IDs are
		      not X resources, but are numbered implicitly,
		      starting with 0.

	  itemCount   Specifies the number of elements in the gamma
		      table to be loaded.

	  itemCountReturn
		      Specifies a pointer to an integer that is to
		      contain the number of elements in the gamma
		      table.

	  loadTables  The gamma tables which should be loaded with
		      this command.  To economize traffic, you should
		      load all tables simultaneously if you intend to
		      set each color component to the same values.
		      You may use a bitwise OR of the constants
		      XSGIVC_MComponentRed, XSGIVC_MComponentGreen,
		      XSGIVC_MComponentBlue, or
		      XSGIVC_MComponentAlpha.

	  gammaValue  Specifies a pointer to an array containing gamma
		      elements.	 The number of items of each array
		      must be that specified in itemCount.

	  gammaReturn Specifies a pointer to a location that is to
		      contain a pointer to an array containing the
		      returned gamma map.

     Page 2					     (printed 7/20/06)

     XSGIvcStoreGammaColors(3)		     XSGIvcStoreGammaColors(3)

	  gammaSizeReturn
		      Specifies a location which is to receive the
		      size of the gamma table (i.e., the number of
		      entries in the gamma table).

	  gammaPrecisionReturn
		      Specifies a location which is to receive the
		      precision in bits of the gamma table.  For
		      example, if each entry in the gamma table is 10
		      bits long, the call returns 10.

	  gammaMapAttributes
		      A bitmask describing attributes of the gamma
		      map.  The bitmask may contain one or more of the
		      following attributes:  XSGIVC_GMAlphaPresent, or
		      XSGIVC_GMHardwareApproximation.  See the
		      discussion below for a more thorough treatment
		      of attributes

	  requestedColor
		      For queries, specifies which color component's
		      information should be returned.  Use the
		      constants XSGIVC_COMPONENT_RED,
		      XSGIVC_COMPONENT_GREEN, XSGIVC_COMPONENT_BLUE,
		      or XSGIVC_COMPONENT_ALPHA.  The server may
		      ignore the alpha component if the gamma map does
		      not have an alpha component; see
		      XSGIvcQueryGammaMap.

     DESCRIPTION
	Gamma Correction and Server Configuration
	  Cathode ray tubes (CRTs) have the unfortunate characteristic
	  that their display is non-linear:  the intensity of light
	  displayed at a pixel is not strictly proportional to the
	  voltage supplied to the CRT at that pixel. Gamma correction
	  is used to compensate for that non-linearity so the monitor
	  does produce the proper intensity.

	  A server may contain one or more gamma maps, each of which
	  may perform an independent correction by serving as a look-
	  up table.  A gamma map has two distinguishing features:  the
	  number of entries in the table (i.e., each gamma color) and
	  the width of each entry.  These correspond to the input and
	  output values, respectively, as each pixel is processed
	  through the look-up table.

	  Depending on server configuration, a channel may use one of

     Page 3					     (printed 7/20/06)

     XSGIvcStoreGammaColors(3)		     XSGIvcStoreGammaColors(3)

	  one or more gamma maps.  Servers may assign a permanent
	  gamma map to a channel, restrict channels to use one of a
	  subset of all maps, permit a channel to use one of all
	  shared maps, or some combination thereof, depending on
	  hardware configuration.  If two channels employ the same
	  gamma map, changing the colors in that gamma map will affect
	  both channels.

	Functions
	  XSGIvcQueryScreenGammaMaps returns the number of separate
	  gamma maps supported. For each gamma map supported, the
	  system returns the number of entries supported.  Each color
	  component in a gamma map must support the same number of
	  entries, different gamma maps may support different numbers
	  of entries. Systems with no writable gamma map should return
	  a count of zero (0). XSGIvcQueryGammaMap returns information
	  regarding a specified gamma map's configuration.

	  The XSGIvcStoreGammaColors8 and XSGIvcStoreGammaColors16
	  functions change the gamma map entries for the specified map
	  to the specified colors, the former function loading 8-bit
	  entries and the latter loading 16-bit entries.  To load a
	  gamma color, you pass a single array of values via
	  gammaValue and specify into which color components that
	  array will be loaded.	 The doRed, doGreen, doBlueand doAlpha
	  arguments indicate which components should actually be
	  changed.  If you select more than one component, each
	  component will be loaded with the same values;  you may
	  select any one or a combination of the colors to load.

	  N.B.: The hardware of some servers may require the server to
	  load all components simultaneously in an encoded (packed)
	  manner, so choosing a single color component may require the
	  server to query the gamma table to encode the component
	  before writing it; thus, the most efficient use of this
	  function may be to store all color components
	  simultaneously.

	  All tables loaded via a single call must have the same
	  number of entries, specified via the parameter itemCount.
	  Note that the count of the number of entries you load in a
	  table must exactly equal the length of the table (returned
	  via the parameter gammaSizeReturn in the function
	  XSGIvcQueryGammaMap).

	  XSGIvcQueryGammaColors() returns the gamma values for the
	  specified gamma map.	The number of items in the requested
	  color component is returned in itemCountReturn.  Use XFree()
	  to free the memory allocated in gammaValueReturn.

     Page 4					     (printed 7/20/06)

     XSGIvcStoreGammaColors(3)		     XSGIvcStoreGammaColors(3)

	  XSGIvcSetChannelGammaMap() selects the specified channel to
	  use the specified gamma map.	On server startup, each
	  channel uses the lowest-number gamma map available to it.

	  XSGIvcQueryChannelGammaMap() returns the gamma map ID
	  associated with the specified channel.

	  The function XSGIvcStoreGammaColors8 is provided as an
	  economy to the function XSGIvcStoreGammaColors16 because it
	  minimizes traffic between the client and X server.  You
	  should use the operation that best suits your need:  for
	  rapid animations, you may prefer the 8-bit function; for
	  greater accuracy, the 16-bit function.

	Server's Operations on Colors During Store
	  If you store a gamma map's colors using a function whose
	  width is different than the width of the gamma map, the
	  server will alter the values when loading the gamma
	  hardware.  This alteration occurs for each color value you
	  specify.

	  If you use a function whose width is larger than that of the
	  table, the server will truncate, using only the most-
	  signficant bits (MSBs) of your values; for example, if you
	  use the XSGIvcStoreGammaColors8 function to store values
	  into a table that contains only five bits, the server will
	  use only the upper five MSBs of your color values,
	  discarding the lower three bits.

	  If you use a function whose width is narrower than the
	  table, the server will use your stored values for the most-
	  significants bits (MSBs), and store into the unsupplied
	  least-signficant bits (LSBs) a copy of the most significant
	  bits; for example, if you use the XSGIvcStoreGammaColors8
	  function to store values into a table that contains 12 bits,
	  the server will store your values into the eight MSBs,
	  copying the upper four bits of each of your values into each
	  entry's LSBs.

	Server's Operations on Colors During Query
	  The XSGIvcQueryGammaColors function implicitly returns 16-
	  bit quantities, irrespective of the precision of the
	  underlying hardware.	If the gamma map's precision is less
	  than 16 bits, the server will return the significant bits of
	  the precision in the uppermost bits of the returned 16-bit
	  quantity; the least significant bits of the returned
	  quantity will contain replicated copies of the gamma map's
	  MSBs.

     Page 5					     (printed 7/20/06)

     XSGIvcStoreGammaColors(3)		     XSGIvcStoreGammaColors(3)

	  This operation is similar and complementary to the actions
	  taken during store operations.  For example, if the hardware
	  gamma map has 11 significant bits, the 16-bit value returned
	  to the client will contain the hardware's value in bits the
	  upper 11 bits.  The most significant five bits of the
	  hardware's value will be replicated in the lower four bits
	  of the returned value.

	  In general, the significant bits of the returned value may
	  be determined via the following C-language statement (given
	  precision as the width of the gamma entry and
	  gammaValueReturn as the returned value):

	    unsigned short sigBits;
	    ...
	    sigBits = (gammaValueReturn >> (16 - precision));

	  You can use the function XSGIvcStoreGammaColors16 as a
	  complementary store operation; that function expects a value
	  with the significant bits similarly shifted into the MSBs.

	Gamma Map Attributes
	  Some gamma maps may have certain attributes which modify
	  their operation.  The attributes of the gamma map may be
	  retrieved by calling XSGIvcQueryGammaMap.  The attributes
	  are:

	  XSGIVC_GMAlphaPresent
	       The gamma map has an alpha component in addition to the
	       red, green, and blue components.

	  XSGIVC_GMHardwareApproximation
	       The server hardware may use private techniques to
	       approximate the stated size and precision of the gamma
	       map, substituting a less thorough representation.  In
	       most cases when you load a gamma-shaped curve, the
	       visual result will not be different from that of a
	       gamma map which has not undergone hardware
	       approximation.  Queries of the value of the colors of
	       this gamma map will return the values as previously
	       stored, not of the internal approximation.  The
	       techniques used to approximate the gamma map are at the
	       discretion of the server.

	  XSGIVC_GMWriteLock
	       The gamma map cannot be modified programmatically.  The
	       server hardware may have a fixed gamma map or the
	       server does not implement alteration of this map.

	  XSGIVC_GMReadLock
	       The gamma map cannot be queried programmatically.  The

     Page 6					     (printed 7/20/06)

     XSGIvcStoreGammaColors(3)		     XSGIvcStoreGammaColors(3)

	       server hardware may not permit readback or the server
	       does not implement readback of this map.

     EVENTS
	  When this control is altered, the server generates a
	  GammaMapNotify event.

     RETURNED VALUE
	  XSGIvcQueryGammaColors, XSGIvcQueryChannelGammaMap,
	  XSGIvcQueryGammaMap, and XSGIvcQueryScreenGammaMaps return
	  TRUE if successful, FALSE upon failure.

	  Parameter errors are reported via BadValue or BadMatch.

     DIAGNOSTICS
	  In the XSGIvcStoreGammaColors8() and
	  XSGIvcStoreGammaColors16() functions, a Value error is
	  generated if a specified pixel is not a valid index into the
	  gamma map.  If more than one pixel is in error, it is
	  arbitrary as to which pixel is reported.   A Colormap error
	  is generated if the map id is not valid.

	  In the XSGIvcQueryGammaColors() function,  a Colormap error
	  is generated if the gamma map id is invalid. A Value error
	  is generated if a pixel is invalid.  If more than one pixel
	  is in error, it is arbitrary as to which pixel is reported.

     SEE ALSO
	  XSGIvc

     Page 7					     (printed 7/20/06)

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net