| Name |
| |
| EXT_cmyka |
| |
| Name Strings |
| |
| GL_EXT_cmyka |
| |
| Version |
| |
| $Date: 1997/02/26 03:36:26 $ $Revision: 1.17 $ |
| |
| Number |
| |
| 18 |
| |
| Dependencies |
| |
| EXT_abgr affects the definition of this extension |
| EXT_texture3D affects the definition of this extension |
| EXT_subtexture affects the definition of this extension |
| EXT_histogram affects the definition of this extension |
| EXT_convolution affects the definition of this extension |
| SGI_color_table affects the definition of this extension |
| SGIS_texture4D affects the definition of this extension |
| |
| Overview |
| |
| This extension provides a simple method for OpenGL to read and store |
| images whose pixels have CMYK or CMYKA formats. The algorithms used to |
| convert to RGBA from CMYKA and to convert back from RGBA to CMYKA are of |
| the "black-box" nature, meaning that the application has little control |
| over how the conversion is done. Also, this black-box mechanism is |
| available only for transfers to or from memory, not for internal copies |
| of pixel data (such as invoked by CopyPixels, CopyTexImage1D, etc.) |
| However, the defined mechanism nicely handles 5-component CMYKA images, |
| and it is very easy to use. |
| |
| A more configurable and potentially higher quality color conversion can |
| be implemented using the color tables, the color matrix, and possibly 3D |
| and 4D texture lookup. Such a color conversion also applies to copied |
| pixel data. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted by the <format> parameter of DrawPixels, ReadPixels, |
| TexImage1D, TexImage2D, TexImage3DEXT, TexImage4DSGIS, TexSubImage1DEXT, |
| TexSubImage2DEXT, TexSubImage3DEXT, TexSubImage4DSGIS, GetTexImage, |
| ColorTableSGI, GetColorTableSGI, ConvolutionFilter1DEXT, |
| ConvolutionFilter2DEXT, ConvolutionFilter3DEXT, GetConvolutionFilterEXT, |
| SeparableFilter2DEXT, SeparableFilter3DEXT, GetSeparableFilterEXT, |
| GetHistogramEXT, and GetMinmaxEXT: |
| |
| CMYK_EXT 0x800C |
| CMYKA_EXT 0x800D |
| |
| Accepted by the <target> parameter of Hint, and by the <pname> |
| parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev: |
| |
| PACK_CMYK_HINT_EXT 0x800E |
| UNPACK_CMYK_HINT_EXT 0x800F |
| |
| Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) |
| |
| None |
| |
| Additions to Chapter 3 of the 1.0 Specification (Rasterization) |
| |
| Two entries are added to table 3.5 (DrawPixels and ReadPixels formats). |
| The new table is: |
| |
| Target |
| Name Type Elements Buffer |
| ---- ---- -------- ------ |
| COLOR_INDEX Index Color Index Color |
| STENCIL_INDEX Index Stencil value Stencil |
| DEPTH_COMPONENT Component Depth value Depth |
| RED Component R Color |
| GREEN Component G Color |
| BLUE Component B Color |
| ALPHA Component A Color |
| RGB Component R, G, B Color |
| RGBA Component R, G, B, A Color |
| LUMINANCE Component Luminance value Color |
| LUMINANCE_ALPHA Component Luminance value, A Color |
| ABGR_EXT Component A, B, G, R Color |
| CMYK_EXT Component Cyan value, Color |
| Magenta value, |
| Yellow value, |
| Black value |
| CMYKA_EXT Component Cyan value, Color |
| Magenta value, |
| Yellow value, |
| Black value, A |
| |
| Table 3.5: DrawPixels and ReadPixels formats. The third column |
| gives a description of and the number and order of elements in a |
| group. |
| |
| The new formats CMYK_EXT and CMYKA_EXT are added to the discussion of |
| Conversion to RGB. If the format is either of these two values, then |
| the cyan, magenta, yellow, and black values in each group are converted |
| to R, G, and B values using an undefined algorithm. The value of |
| UNPACK_CMYK_HINT_EXT determines whether the implementation uses its |
| fastest, nicest, or favorite algorithm to accomplish this conversion. |
| The unpacking conversion hint is specified by calling Hint with |
| parameter <target> set to UNPACK_CMYK_HINT_EXT, and parameter <mode> set |
| to FASTEST, NICEST, or DONT_CARE. If the format is CMYKA_EXT, the alpha |
| value is copied directly to A. |
| |
| Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations |
| and the Framebuffer) |
| |
| The new formats are added to the discussion of Obtaining Pixels from the |
| Framebuffer. It should read "If the <format> is LUMINANCE, |
| LUMINANCE_ALPHA, CMYK_EXT, or CMYKA_EXT, then R, G, B, and A values are |
| obtained. If the <format> is one of RED, GREEN, BLUE, ALPHA, RGB, RGBA, |
| ABGR_EXT, LUMINANCE, LUMINANCE_ALPHA, CMYK_EXT, or CMYKA_EXT, and the GL |
| is in color index mode, then the color index is obtained." |
| |
| The new formats are added to the discussion of Index Lookup. It should |
| read "If <format> is one of RED, GREEN, BLUE, ALPHA, RGB, RGBA, |
| ABGR_EXT, LUMINANCE, LUMINANCE_ALPHA, CMYK_EXT, or CMYKA_EXT, then the |
| index is used to reference 4 tables of color components: |
| PIXEL_MAP_I_TO_R, PIXEL_MAP_I_TO_G, PIXEL_MAP_I_TO_B, and |
| PIXEL_MAP_I_TO_A." |
| |
| A new section, "Conversion to CMYK," is added immediately following the |
| section "Conversion to L." It reads: |
| |
| This step applies only to RGBA component groups, and only if the |
| <format> is either CMYK_EXT or CMYKA_EXT. Values for cyan, magenta, |
| yellow, and black are computed from the R, G, and B values of the |
| pixel group using an undefined algorithm. These cyan, magenta, |
| yellow, and black values replace the R, G, and B values in the |
| group. The value of PACK_CMYK_HINT_EXT determines whether the |
| implementation uses its fastest, nicest, or favorite algorithm to |
| accomplish this conversion. The packing conversion hint is |
| specified by calling Hint with parameter <target> set to |
| PACK_CMYK_HINT_EXT, and parameter <mode> set to FASTEST, NICEST, or |
| DONT_CARE. |
| |
| Additions to Chapter 5 of the 1.0 Specification (Special Functions) |
| |
| None |
| |
| Additions to Chapter 6 of the 1.0 Specification (State and State Requests) |
| |
| Although PACK_CMYK_HINT_EXT and UNPACK_CMYK_HINT_EXT are modified using |
| the Hint interface, they are not included in the hint attribute set. |
| Rather, they are part of pixel storage state, meaning that they are not |
| pushed and popped by PushAttributes and PopAttributes, and that they are |
| client state rather than server state. Also, like all other pixel |
| storage parameters, the CMYK hint modes in effect when a pixel command |
| (such as DrawPixels) is placed in a display list control the |
| interpretation of memory data. The CMYK hints in effect when a display |
| list is executed are not significant. |
| |
| Additions to the GLX Specification |
| |
| None |
| |
| GLX Protocol |
| |
| None |
| |
| Dependencies on EXT_abgr |
| |
| If EXT_abgr is not implemented, then references to ABGR_EXT in this |
| specification are void. |
| |
| Dependencies on EXT_texture3D |
| |
| If EXT_texture3D is not implemented, then references to TexImage3DEXT, |
| TexSubImage3DEXT, ConvolutionFilter3DEXT, and SeparableFilter3DEXT in |
| this specification are void. |
| |
| Dependencies on EXT_subtexture |
| |
| If EXT_subtexture is not implemented, then references to |
| TexSubImage1DEXT, TexSubImage2DEXT, TexSubImage3DEXT, and |
| TexSubImage4DSGIS in this specification are void. |
| |
| Dependencies on EXT_histogram |
| |
| If EXT_histogram is not implemented, then references to GetHistogramEXT |
| and GetMinmaxEXT in this extension are void. |
| |
| Dependencies on EXT_convolution |
| |
| If EXT_convolution is not implemented, then references to |
| ConvolutionFilter1DEXT, ConvolutionFilter2DEXT, ConvolutionFilter3DEXT, |
| GetConvolutionFilterEXT, SeparableFilter2DEXT, SeparableFilter3DEXT, and |
| GetSeparableFilterEXT in this extension are void. |
| |
| Dependencies on SGI_color_table |
| |
| If SGI_color_table is not implemented, then references to ColorTableSGI |
| and GetColorTableSGI in this extension are void. |
| |
| Dependencies on SGIS_texture4D |
| |
| If SGIS_texture4D is not implemented, then references to TexImage4DSGIS |
| and TexSubImage4DSGIS in this extension are void. |
| |
| Errors |
| |
| None |
| |
| New State |
| |
| Get Value Get Command Type Initial Value Attrib |
| --------- ----------- ---- ------------- ------ |
| PACK_CMYK_HINT_EXT GetIntegerv Z3 DONT_CARE client |
| UNPACK_CMYK_HINT_EXT GetIntegerv Z3 DONT_CARE client |
| |
| New Implementation Dependent State |
| |
| None |