~ubuntu-branches/ubuntu/precise/mesa-lts-quantal/precise-updates

« back to all changes in this revision

Viewing changes to docs/MESA_ycbcr_texture.spec

  • Committer: Package Import Robot
  • Author(s): Maarten Lankhorst
  • Date: 2012-11-30 20:58:34 UTC
  • Revision ID: package-import@ubuntu.com-20121130205834-gazuvne3fpwlf012
Tags: upstream-9.0
ImportĀ upstreamĀ versionĀ 9.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Name
 
2
 
 
3
    MESA_ycbcr_texture
 
4
 
 
5
Name Strings
 
6
 
 
7
    GL_MESA_ycbcr_texture
 
8
 
 
9
Contact
 
10
 
 
11
    Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
 
12
    Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com)
 
13
 
 
14
Status
 
15
 
 
16
    Shipping (Mesa 4.0.4 and later)
 
17
 
 
18
Version
 
19
 
 
20
    1.0
 
21
 
 
22
Number
 
23
 
 
24
    TBD
 
25
 
 
26
Dependencies
 
27
 
 
28
    OpenGL 1.0 or later is required
 
29
    This extension is written against the OpenGL 1.4 Specification.
 
30
    NV_texture_rectangle effects the definition of this extension.
 
31
 
 
32
Overview
 
33
 
 
34
    This extension supports texture images stored in the YCbCr format.
 
35
    There is no support for converting YCbCr images to RGB or vice versa
 
36
    during pixel transfer.  The texture's YCbCr colors are converted to
 
37
    RGB during texture sampling, after-which, all the usual per-fragment
 
38
    operations take place.  Only 2D texture images are supported (not
 
39
    glDrawPixels, glReadPixels, etc).
 
40
 
 
41
    A YCbCr pixel (texel) is a 16-bit unsigned short with two components.
 
42
    The first component is luminance (Y).  For pixels in even-numbered
 
43
    image columns, the second component is Cb.  For pixels in odd-numbered
 
44
    image columns, the second component is Cr.  If one were to convert the
 
45
    data to RGB one would need to examine two pixels from columns N and N+1
 
46
    (where N is even) to deduce the RGB color.
 
47
 
 
48
IP Status
 
49
 
 
50
    None
 
51
 
 
52
Issues
 
53
 
 
54
    None
 
55
 
 
56
New Procedures and Functions
 
57
 
 
58
    None
 
59
 
 
60
New Tokens
 
61
 
 
62
    Accepted by the <internalFormat> and <format> parameters of
 
63
    TexImage2D and TexSubImage2D:
 
64
 
 
65
        YCBCR_MESA                   0x8757
 
66
 
 
67
    Accepted by the <type> parameter of TexImage2D and TexSubImage2D:
 
68
 
 
69
        UNSIGNED_SHORT_8_8_MESA      0x85BA /* same as Apple's */
 
70
        UNSIGNED_SHORT_8_8_REV_MESA  0x85BB /* same as Apple's */
 
71
 
 
72
Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
 
73
 
 
74
    None
 
75
 
 
76
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
 
77
 
 
78
    In section 3.6.4, Rasterization of Pixel Rectangles, on page 101,
 
79
    add the following to Table 3.8 (Packed pixel formats):
 
80
    
 
81
    type Parameter                GL Data   Number of        Matching
 
82
     Token Name                    Type     Components     Pixel Formats
 
83
    --------------                -------   ----------     -------------
 
84
    UNSIGNED_SHORT_8_8_MESA       ushort         2         YCBCR_MESA
 
85
    UNSIGNED_SHORT_8_8_REV_MESA   ushort         2         YCBCR_MESA
 
86
 
 
87
 
 
88
    In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
 
89
    add the following to Table 3.10 (UNSIGNED_SHORT formats):
 
90
 
 
91
    UNSIGNED_SHORT_8_8_MESA:
 
92
 
 
93
      15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
 
94
    +-------------------------------+-------------------------------+
 
95
    |              1st              |              2nd              |
 
96
    +-------------------------------+-------------------------------+
 
97
                        
 
98
    UNSIGNED_SHORT_8_8_REV_MESA:
 
99
 
 
100
      15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
 
101
    +-------------------------------+-------------------------------+
 
102
    |              2nd              |              1st              |
 
103
    +-------------------------------+-------------------------------+
 
104
 
 
105
 
 
106
    In section 3.6.4, Rasterization of Pixel Rectangles, on page 104,
 
107
    add the following to Table 3.12 (Packed pixel field assignments):
 
108
 
 
109
                       First       Second     Third      Fourth
 
110
    Format             Element     Element    Element    Element
 
111
    ------             -------     -------    -------    -------
 
112
    YCBCR_MESA         luminance   chroma
 
113
 
 
114
 
 
115
    In section 3.8.1, Texture Image Specification, on page 125, add
 
116
    another item to the list of TexImage2D and TexImage3D equivalence
 
117
    exceptions:
 
118
 
 
119
    * The value of internalformat and format may be YCBCR_MESA to
 
120
      indicate that the image data is in YCbCr format.  type must
 
121
      be either UNSIGNED_SHORT_8_8_MESA or UNSIGNED_SHORT_8_8_REV_MESA
 
122
      as seen in tables 3.8 and 3.10.  Table 3.12 describes the mapping
 
123
      between Y and Cb/Cr to the components.
 
124
      If NV_texture_rectangle is supported target may also be
 
125
      TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV.
 
126
      All pixel transfer operations are bypassed.  The texture is stored as
 
127
      YCbCr, not RGB.  Queries of the texture's red, green and blue component
 
128
      sizes will return zero.  The YCbCr colors are converted to RGB during
 
129
      texture sampling using an implementation dependent conversion.
 
130
 
 
131
 
 
132
    In section 3.8.1, Texture Image Specification, on page 126, add
 
133
    another item to the list of TexImage1D and TexImage2D equivalence
 
134
    exceptions:
 
135
 
 
136
    * The value of internalformat and format can not be YCBCR_MESA.
 
137
 
 
138
 
 
139
    In section 3.8.2, Alternate Texture Image Specification Commands, on
 
140
    page 129, insert this paragraph after the first full paragraph on the
 
141
    page:
 
142
 
 
143
         "If the internal storage format of the image being updated by
 
144
    TexSubImage2D is YCBCR_MESA then format must be YCBCR_MESA.
 
145
    The error INVALID_OPERATION will be generated otherwise."
 
146
 
 
147
 
 
148
Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
 
149
Operations and the Frame Buffer)
 
150
 
 
151
    None
 
152
 
 
153
Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
 
154
 
 
155
    None
 
156
 
 
157
Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
 
158
State Requests)
 
159
 
 
160
    None
 
161
 
 
162
Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
 
163
 
 
164
    None
 
165
 
 
166
Additions to the AGL/GLX/WGL Specifications
 
167
 
 
168
    None
 
169
 
 
170
GLX Protocol
 
171
 
 
172
    None
 
173
 
 
174
Errors
 
175
 
 
176
    INVALID_ENUM is generated by TexImage2D if <internalFormat> is
 
177
    MESA_YCBCR but <format> is not MESA_YCBCR.
 
178
 
 
179
    INVALID_ENUM is generated by TexImage2D if <format> is MESA_YCBCR but
 
180
    <internalFormat> is not MESA_YCBCR.
 
181
 
 
182
    INVALID_VALUE is generated by TexImage2D if <format> is MESA_YCBCR and
 
183
    <internalFormat> is MESA_YCBCR and <border> is not zero.
 
184
 
 
185
    INVALID_OPERATION is generated by TexSubImage2D if the internal image
 
186
    format is YCBCR_MESA and <format> is not YCBCR_MESA.
 
187
 
 
188
    INVALID_OPERATION is generated by CopyTexSubImage2D if the internal
 
189
    image is YCBCR_MESA.
 
190
    
 
191
New State
 
192
 
 
193
    Edit table 6.16 on page 231: change the type of TEXTURE_INTERNAL_FORMAT
 
194
    from n x Z42 to n x Z43 to indicate that internal format may also be
 
195
    YCBCR_MESA.
 
196
 
 
197
Revision History
 
198
 
 
199
    20 September 2002 - Initial draft
 
200
    29 April 2003 - minor updates
 
201
     3 September 2003 - further clarify when YCbCr->RGB conversion takes place
 
202
    19 September 2003 - a few more updates prior to submitting to extension
 
203
                        registry.
 
204
     3 April 2004 - fix assorted inaccuracies