| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 | 
							- Name
 - 
 -     MESA_ycbcr_texture
 - 
 - Name Strings
 - 
 -     GL_MESA_ycbcr_texture
 - 
 - Contact
 - 
 -     Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
 -     Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com)
 - 
 - Status
 - 
 -     Shipping (Mesa 4.0.4 and later)
 - 
 - Version
 - 
 -     1.0
 - 
 - Number
 - 
 -     TBD
 - 
 - Dependencies
 - 
 -     OpenGL 1.0 or later is required
 -     This extensions is written against the OpenGL 1.4 Specification.
 -     NV_texture_rectangle effects the definition of this extension.
 - 
 - Overview
 - 
 -     This extension supports texture images stored in the YCbCr format.
 -     There is no support for converting YCbCr images to RGB or vice versa
 -     during pixel transfer.  The texture's YCbCr colors are converted to
 -     RGB during texture sampling, after-which, all the usual per-fragment
 -     operations take place.  Only 2D texture images are supported (not
 -     glDrawPixels, glReadPixels, etc).
 - 
 -     A YCbCr pixel (texel) is a 16-bit unsigned short with two components.
 -     The first component is luminance (Y).  For pixels in even-numbered
 -     image columns, the second component is Cb.  For pixels in odd-numbered
 -     image columns, the second component is Cr.  If one were to convert the
 -     data to RGB one would need to examine two pixels from columns N and N+1
 -     (where N is even) to deduce the RGB color.
 - 
 - IP Status
 - 
 -     None
 - 
 - Issues
 - 
 -     None
 - 
 - New Procedures and Functions
 - 
 -     None
 - 
 - New Tokens
 - 
 -     Accepted by the <internalFormat> and <format> parameters of
 -     TexImage2D and TexSubImage2D:
 - 
 -         YCBCR_MESA                   0x8757
 - 
 -     Accepted by the <type> parameter of TexImage2D and TexSubImage2D:
 - 
 -         UNSIGNED_SHORT_8_8_MESA      0x85BA /* same as Apple's */
 -         UNSIGNED_SHORT_8_8_REV_MESA  0x85BB /* same as Apple's */
 - 
 - Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
 - 
 -     None
 - 
 - Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
 - 
 -     In section 3.6.4, Rasterization of Pixel Rectangles, on page 101,
 -     add the following to Table 3.8 (Packed pixel formats):
 -     
 -     type Parameter                GL Data   Number of        Matching
 -      Token Name                    Type     Components     Pixel Formats
 -     --------------                -------   ----------     -------------
 -     UNSIGNED_SHORT_8_8_MESA       ushort         2         YCBCR_MESA
 -     UNSIGNED_SHORT_8_8_REV_MESA   ushort         2         YCBCR_MESA
 - 
 - 
 -     In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
 -     add the following to Table 3.10 (UNSIGNED_SHORT formats):
 - 
 -     UNSIGNED_SHORT_8_8_MESA:
 - 
 -       15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
 -     +-------------------------------+-------------------------------+
 -     |              1st              |              2nd              |
 -     +-------------------------------+-------------------------------+
 -                         
 -     UNSIGNED_SHORT_8_8_REV_MESA:
 - 
 -       15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
 -     +-------------------------------+-------------------------------+
 -     |              2nd              |              1st              |
 -     +-------------------------------+-------------------------------+
 - 
 - 
 -     In section 3.6.4, Rasterization of Pixel Rectangles, on page 104,
 -     add the following to Table 3.12 (Packed pixel fiedl assignments):
 - 
 -                        First       Second     Third      Fourth
 -     Format             Element     Element    Element    Element
 -     ------             -------     -------    -------    -------
 -     YCBCR_MESA         luminance   chroma
 - 
 - 
 -     In section 3.8.1, Texture Image Specification, on page 125, add
 -     another item to the list of TexImage2D and TexImage3D equivalence
 -     exceptions:
 - 
 -     * The value of internalformat and format may be YCBCR_MESA to
 -       indicate that the image data is in YCbCr format.  type must
 -       be either UNSIGNED_SHORT_8_8_MESA or UNSIGNED_SHORT_8_8_REV_MESA
 -       as seen in tables 3.8 and 3.10.  Table 3.12 describes the mapping
 -       between Y and Cb/Cr to the components.
 -       If NV_texture_rectangle is supported target may also be
 -       TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV.
 -       All pixel transfer operations are bypassed.  The texture is stored as
 -       YCbCr, not RGB.  Queries of the texture's red, green and blue component
 -       sizes will return zero.  The YCbCr colors are converted to RGB during
 -       texture sampling using an implementation dependent conversion.
 - 
 - 
 -     In section 3.8.1, Texture Image Specification, on page 126, add
 -     another item to the list of TexImage1D and TexImage2D equivalence
 -     exceptions:
 - 
 -     * The value of internalformat and format can not be YCBCR_MESA.
 - 
 - 
 -     In section 3.8.2, Alternate Texture Image Specification Commands, on
 -     page 129, insert this paragraph after the first full paragraph on the
 -     page:
 - 
 -          "If the internal storage format of the image being updated by
 -     TexSubImage2D is YCBCR_MESA then format must be YCBCR_MESA.
 -     The error INVALID_OPERATION will be generated otherwise."
 - 
 - 
 - Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
 - Operations and the Frame Buffer)
 - 
 -     None
 - 
 - Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
 - 
 -     None
 - 
 - Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
 - State Requests)
 - 
 -     None
 - 
 - Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
 - 
 -     None
 - 
 - Additions to the AGL/GLX/WGL Specifications
 - 
 -     None
 - 
 - GLX Protocol
 - 
 -     None
 - 
 - Errors
 - 
 -     INVALID_ENUM is generated by TexImage2D if <internalFormat> is
 -     MESA_YCBCR but <format> is not MESA_YCBCR.
 - 
 -     INVALID_ENUM is generated by TexImage2D if <format> is MESA_YCBCR but
 -     <internalFormat> is not MESA_YCBCR.
 - 
 -     INVALID_VALUE is generated by TexImage2D if <format> is MESA_YCBCR and
 -     <internalFormat> is MESA_YCBCR and <border> is not zero.
 - 
 -     INVALID_OPERATION is generated by TexSubImage2D if the internal image
 -     format is YCBCR_MESA and <format> is not YCBCR_MESA.
 - 
 -     INVALID_OPERATION is generated by CopyTexSubImage2D if the internal
 -     image is YCBCR_MESA.
 -     
 - New State
 - 
 -     Edit table 6.16 on page 231: change the type of TEXTURE_INTERNAL_FORMAT
 -     from n x Z42 to n x Z43 to indicate that internal format may also be
 -     YCBCR_MESA.
 - 
 - Revision History
 - 
 -     20 September 2002 - Initial draft
 -     29 April 2003 - minor updates
 -      3 September 2003 - further clarify when YCbCr->RGB conversion takes place
 -     19 September 2003 - a few more updates prior to submitting to extension
 -                         registry.
 -      3 April 2004 - fix assorted inaccuracies
 
 
  |