home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / OpenGL / opengldoc / glspec / cmyka.spec < prev    next >
Encoding:
Text File  |  1996-11-11  |  8.0 KB  |  224 lines

  1. Name
  2.  
  3.     EXT_cmyka
  4.  
  5. Name Strings
  6.  
  7.     GL_EXT_cmyka
  8.  
  9. Version
  10.  
  11.     $Date: 1996/04/02 00:07:30 $ $Revision: 1.2 $
  12.  
  13. Number
  14.  
  15.     18
  16.  
  17. Dependencies
  18.  
  19.     EXT_abgr affects the definition of this extension
  20.     EXT_texture3D affects the definition of this extension
  21.     EXT_subtexture affects the definition of this extension
  22.     EXT_histogram affects the definition of this extension
  23.     EXT_convolution affects the definition of this extension
  24.     SGI_color_table affects the definition of this extension
  25.     SGIS_texture4D affects the definition of this extension
  26.  
  27. Overview
  28.  
  29.     This extension provides a simple method for OpenGL to read and store
  30.     images whose pixels have CMYK or CMYKA formats.  The algorithms used to
  31.     convert to RGBA from CMYKA and to convert back from RGBA to CMYKA are of
  32.     the "black-box" nature, meaning that the application has little control
  33.     over how the conversion is done.  Also, this black-box mechanism is
  34.     available only for transfers to or from memory, not for internal copies
  35.     of pixel data (such as invoked by CopyPixels, CopyTexImage1D, etc.)
  36.     However, the defined mechanism nicely handles 5-component CMYKA images,
  37.     and it is very easy to use.
  38.  
  39.     A more configurable and potentially higher quality color conversion can
  40.     be implemented using the color tables, the color matrix, and possibly 3D
  41.     and 4D texture lookup.  Such a color conversion also applies to copied
  42.     pixel data.
  43.  
  44. New Procedures and Functions
  45.  
  46.     None
  47.  
  48. New Tokens
  49.  
  50.     Accepted by the <format> parameter of DrawPixels, ReadPixels,
  51.     TexImage1D, TexImage2D, TexImage3DEXT, TexImage4DSGIS, TexSubImage1DEXT,
  52.     TexSubImage2DEXT, TexSubImage3DEXT, TexSubImage4DSGIS, GetTexImage,
  53.     ColorTableSGI, GetColorTableSGI, ConvolutionFilter1DEXT,
  54.     ConvolutionFilter2DEXT, ConvolutionFilter3DEXT, GetConvolutionFilterEXT,
  55.     SeparableFilter2DEXT, SeparableFilter3DEXT, GetSeparableFilterEXT,
  56.     GetHistogramEXT, and GetMinmaxEXT:
  57.  
  58.     CMYK_EXT
  59.     CMYKA_EXT
  60.  
  61.     Accepted by the <target> parameter of Hint, and by the <pname>
  62.     parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev:
  63.  
  64.     PACK_CMYK_HINT_EXT
  65.     UNPACK_CMYK_HINT_EXT
  66.  
  67. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  68.  
  69.     None
  70.  
  71. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  72.  
  73.     Two entries are added to table 3.5 (DrawPixels and ReadPixels formats).
  74.     The new table is:
  75.  
  76.                                     Target
  77.     Name            Type        Elements        Buffer
  78.     ----            ----        --------        ------
  79.     COLOR_INDEX        Index        Color Index        Color
  80.     STENCIL_INDEX        Index        Stencil value        Stencil
  81.     DEPTH_COMPONENT        Component    Depth value        Depth
  82.     RED            Component    R            Color
  83.     GREEN            Component    G            Color
  84.     BLUE            Component    B            Color
  85.     ALPHA            Component    A            Color
  86.     RGB            Component    R, G, B            Color
  87.     RGBA            Component    R, G, B, A        Color
  88.     LUMINANCE        Component    Luminance value        Color
  89.     LUMINANCE_ALPHA        Component    Luminance value, A    Color
  90.     ABGR_EXT        Component    A, B, G, R        Color
  91.     CMYK_EXT        Component    Cyan value,        Color
  92.                         Magenta value,
  93.                         Yellow value,
  94.                         Black value
  95.     CMYKA_EXT        Component    Cyan value,        Color
  96.                         Magenta value,
  97.                         Yellow value,
  98.                         Black value, A
  99.  
  100.     Table 3.5: DrawPixels and ReadPixels formats.  The third column
  101.     gives a description of and the number and order of elements in a
  102.     group.
  103.  
  104.     The new formats CMYK_EXT and CMYKA_EXT are added to the discussion of
  105.     Conversion to RGB.  If the format is either of these two values, then
  106.     the cyan, magenta, yellow, and black values in each group are converted
  107.     to R, G, and B values using an undefined algorithm.  The value of
  108.     UNPACK_CMYK_HINT_EXT determines whether the implementation uses its
  109.     fastest, nicest, or favorite algorithm to accomplish this conversion.
  110.     The unpacking conversion hint is specified by calling Hint with
  111.     parameter <target> set to UNPACK_CMYK_HINT_EXT, and parameter <mode> set
  112.     to FASTEST, NICEST, or DONT_CARE.  If the format is CMYKA_EXT, the alpha
  113.     value is copied directly to A.
  114.  
  115. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
  116. and the Framebuffer)
  117.  
  118.     The new formats are added to the discussion of Obtaining Pixels from the
  119.     Framebuffer.  It should read "If the <format> is LUMINANCE,
  120.     LUMINANCE_ALPHA, CMYK_EXT, or CMYKA_EXT, then R, G, B, and A values are
  121.     obtained.  If the <format> is one of RED, GREEN, BLUE, ALPHA, RGB, RGBA,
  122.     ABGR_EXT, LUMINANCE, LUMINANCE_ALPHA, CMYK_EXT, or CMYKA_EXT, and the GL
  123.     is in color index mode, then the color index is obtained."
  124.  
  125.     The new formats are added to the discussion of Index Lookup.  It should
  126.     read "If <format> is one of RED, GREEN, BLUE, ALPHA, RGB, RGBA,
  127.     ABGR_EXT, LUMINANCE, LUMINANCE_ALPHA, CMYK_EXT, or CMYKA_EXT, then the
  128.     index is used to reference 4 tables of color components:
  129.     PIXEL_MAP_I_TO_R, PIXEL_MAP_I_TO_G, PIXEL_MAP_I_TO_B, and
  130.     PIXEL_MAP_I_TO_A."
  131.  
  132.     A new section, "Conversion to CMYK," is added immediately following the
  133.     section "Conversion to L."  It reads:
  134.  
  135.     This step applies only to RGBA component groups, and only if the
  136.     <format> is either CMYK_EXT or CMYKA_EXT.  Values for cyan, magenta,
  137.     yellow, and black are computed from the R, G, and B values of the
  138.     pixel group using an undefined algorithm.  These cyan, magenta,
  139.     yellow, and black values replace the R, G, and B values in the
  140.     group.  The value of PACK_CMYK_HINT_EXT determines whether the
  141.     implementation uses its fastest, nicest, or favorite algorithm to
  142.     accomplish this conversion.  The packing conversion hint is
  143.     specified by calling Hint with parameter <target> set to
  144.     PACK_CMYK_HINT_EXT, and parameter <mode> set to FASTEST, NICEST, or
  145.     DONT_CARE.
  146.  
  147. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  148.  
  149.     None
  150.  
  151. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  152.  
  153.     Although PACK_CMYK_HINT_EXT and UNPACK_CMYK_HINT_EXT are modified using
  154.     the Hint interface, they are not included in the hint attribute set.
  155.     Rather, they are part of pixel storage state, meaning that they are not
  156.     pushed and popped by PushAttributes and PopAttributes, and that they are
  157.     client state rather than server state.  Also, like all other pixel
  158.     storage parameters, the CMYK hint modes in effect when a pixel command
  159.     (such as DrawPixels) is placed in a display list control the
  160.     interpretation of memory data.  The CMYK hints in effect when a display
  161.     list is executed are not significant.
  162.  
  163. Additions to the GLX Specification
  164.  
  165.     None
  166.  
  167. GLX Protocol
  168.  
  169.         None
  170.  
  171. Dependencies on EXT_abgr
  172.  
  173.     If EXT_abgr is not implemented, then references to ABGR_EXT in this
  174.     specification are void.
  175.  
  176. Dependencies on EXT_texture3D
  177.  
  178.     If EXT_texture3D is not implemented, then references to TexImage3DEXT,
  179.     TexSubImage3DEXT, ConvolutionFilter3DEXT, and SeparableFilter3DEXT in
  180.     this specification are void.
  181.  
  182. Dependencies on EXT_subtexture
  183.  
  184.     If EXT_subtexture is not implemented, then references to
  185.     TexSubImage1DEXT, TexSubImage2DEXT, TexSubImage3DEXT, and
  186.     TexSubImage4DSGIS in this specification are void.
  187.  
  188. Dependencies on EXT_histogram
  189.  
  190.     If EXT_histogram is not implemented, then references to GetHistogramEXT
  191.     and GetMinmaxEXT in this extension are void.
  192.  
  193. Dependencies on EXT_convolution
  194.  
  195.     If EXT_convolution is not implemented, then references to
  196.     ConvolutionFilter1DEXT, ConvolutionFilter2DEXT, ConvolutionFilter3DEXT,
  197.     GetConvolutionFilterEXT, SeparableFilter2DEXT, SeparableFilter3DEXT, and
  198.     GetSeparableFilterEXT in this extension are void.
  199.  
  200. Dependencies on SGI_color_table
  201.  
  202.     If SGI_color_table is not implemented, then references to ColorTableSGI
  203.     and GetColorTableSGI in this extension are void.
  204.  
  205. Dependencies on SGIS_texture4D
  206.  
  207.     If SGIS_texture4D is not implemented, then references to TexImage4DSGIS
  208.     and TexSubImage4DSGIS in this extension are void.
  209.  
  210. Errors
  211.  
  212.     None
  213.  
  214. New State
  215.  
  216.     Get Value            Get Command    Type    Initial Value    Attrib
  217.     ---------            -----------    ----    -------------    ------
  218.     PACK_CMYK_HINT_EXT        GetIntegerv    Z3    DONT_CARE    client
  219.     UNPACK_CMYK_HINT_EXT    GetIntegerv    Z3    DONT_CARE    client
  220.  
  221. New Implementation Dependent State
  222.  
  223.     None
  224.