1Name
2
3    MESA_packed_depth_stencil
4
5Name Strings
6
7    GL_MESA_packed_depth_stencil
8
9Contact
10
11    Keith Whitwell, VA Linux Systems Inc. (keithw 'at' valinux.com)
12    Brian Paul, VA Linux Systems Inc. (brianp 'at' valinux.com)
13
14Status
15
16    Obsolete.
17
18Version
19
20
21Number
22
23    ???
24
25Dependencies
26
27    EXT_abgr affects the definition of this extension
28    SGIS_texture4D affects the definition of this extension
29    EXT_cmyka affects the definition of this extension
30    ARB_packed_pixels affects the definition of this extension
31
32Overview
33	
34    Provides a mechanism for DrawPixels and ReadPixels to efficiently
35    transfer depth and stencil image data.  Specifically, we defined new
36    packed pixel formats and types which pack both stencil and depth
37    into one value.
38
39Issues:
40
41    1. Is this the right way to distinguish between 24/8 and 8/24
42       pixel formats?  Should we instead provide both:
43	
44       GL_DEPTH_STENCIL_MESA
45       GL_STENCIL_DEPTH_MESA
46
47       And perhaps just use GL_UNSIGNED_INT, GL_UNSIGNED_SHORT ?
48
49    2. If not, is it correct to use _REV to indicate that stencil
50       preceeds depth in the 1_15 and 8_24 formats?
51
52    3. Do we really want the GL_UNSIGNED_SHORT formats?  
53
54	
55New Procedures and Functions
56
57    None.
58
59New Tokens
60    
61    Accepted by the <format> parameter of ReadPixels and DrawPixels:
62
63	GL_DEPTH_STENCIL_MESA		0x8750
64
65    Accepted by the <type> parameter of ReadPixels and DrawPixels:
66
67	GL_UNSIGNED_INT_24_8_MESA	0x8751
68	GL_UNSIGNED_INT_8_24_REV_MESA	0x8752
69	GL_UNSIGNED_SHORT_15_1_MESA	0x8753
70	GL_UNSIGNED_SHORT_1_15_REV_MESA	0x8754
71
72Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
73
74    None
75
76Additions to Chapter 3 of the 1.1 Specification (Rasterization)
77
78    One entry is added to table 3.5 (DrawPixels and ReadPixels formats).
79    The new table is:
80
81			Target
82	Format Name	Buffer	Element Meaning and Order
83	-----------	------	-------------------------
84	COLOR_INDEX	Color	Color index
85	STENCIL_INDEX	Stencil Stencil index
86	DEPTH_COMPONENT Depth	Depth component
87	RED		Color	R component
88	GREEN		Color	G component
89	BLUE		Color	B component
90	ALPHA		Color	A component
91	RGB		Color	R, G, B components
92	RGBA		Color	R, G, B, A components
93	BGRA	        Color   B, G, R, A components
94	ABGR_EXT	Color	A, B, G, R components
95	CMYK_EXT	Color	Cyan, Magenta, Yellow, Black components
96	CMYKA_EXT	Color	Cyan, Magenta, Yellow, Black, A components
97	LUMINANCE	Color	Luminance component
98	LUMINANCE_ALPHA Color	Luminance, A components
99	DEPTH_STENCIL   Depth,  Depth component, stencil index.
100			Stencil
101
102	Table 3.5: DrawPixels and ReadPixels formats.  The third column
103	gives a description of and the number and order of elements in a
104	group.
105
106    Add to the description of packed pixel formats:
107
108	<type> Parameter		Data	of	  Matching
109	Token Name			Type	Elements  Pixel Formats
110	----------------		----	--------  -------------
111
112	UNSIGNED_BYTE_3_3_2	      ubyte   3	      RGB
113	UNSIGNED_BYTE_2_3_3_REV       ubyte   3	      RGB
114	UNSIGNED_SHORT_5_6_5	      ushort  3	      RGB
115	UNSIGNED_SHORT_5_6_5_REV      ushort  3	      RGB
116	UNSIGNED_SHORT_4_4_4_4	      ushort  4	      RGBA,BGRA,ABGR_EXT,CMYK_EXT
117	UNSIGNED_SHORT_4_4_4_4_REV    ushort  4	      RGBA,BGRA
118	UNSIGNED_SHORT_5_5_5_1	      ushort  4	      RGBA,BGRA,ABGR_EXT,CMYK_EXT
119	UNSIGNED_SHORT_1_5_5_5_REV    ushort  4	      RGBA,BGRA
120	UNSIGNED_INT_8_8_8_8	      uint    4	      RGBA,BGRA,ABGR_EXT,CMYK_EXT
121	UNSIGNED_INT_8_8_8_8_REV      uint    4	      RGBA,BGRA
122	UNSIGNED_INT_10_10_10_2       uint    4	      RGBA,BGRA,ABGR_EXT,CMYK_EXT
123	UNSIGNED_INT_2_10_10_10_REV   uint    4	      RGBA,BGRA
124	UNSIGNED_SHORT_15_1_MESA      ushort  2       DEPTH_STENCIL_MESA
125	UNSIGNED_SHORT_1_15_REV_MESA  ushort  2       DEPTH_STENCIL_MESA
126	UNSIGNED_SHORT_24_8_MESA      ushort  2       DEPTH_STENCIL_MESA
127	UNSIGNED_SHORT_8_24_REV_MESA  ushort  2       DEPTH_STENCIL_MESA
128
129	UNSIGNED_INT_8_24:
130
131	     31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10	9  8  7  6  5  4  3  2	1  0
132	    +-----------------------+-----------------------------------------------------------------------+
133	    |			    |			     			    			    |
134	    +-----------------------+-----------------------------------------------------------------------+
135
136		    first					second		    
137		    element					element		    
138
139
140	UNSIGNED_INT_24_8:
141
142	     31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10	9  8  7  6  5  4  3  2	1  0
143	    +----------------------------------------------------------------------+------------------------+
144	    |			    			     			   | 			    |
145	    +----------------------------------------------------------------------+------------------------+
146
147		    first								  second		    
148		    element								  element		    
149
150	UNSIGNED_SHORT_15_1:
151
152	      15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
153	    +-----------------------------------------------------------+---+
154	    |					    			|   |
155	    +-----------------------------------------------------------+---+
156
157	    		first						second	
158			element						element	
159
160
161	UNSIGNED_SHORT_1_15_REV:
162
163	      15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
164	    +---+-----------------------------------------------------------+
165	    |	|		     					    |
166	    +---+-----------------------------------------------------------+
167
168	    second		    first
169	    element		    element
170
171    The assignment of elements to fields in the packed pixel is as
172    described in the table below:
173
174			   First       Second	Third	    Fourth
175	Format		   Element     Element	Element     Element
176	------		   -------     -------	-------     -------
177	RGB		   red	       green	blue
178	RGBA		   red	       green	blue	    alpha
179	BGRA		   blue	       green	red	    alpha
180	ABGR_EXT	   alpha       blue	green	    red
181	CMYK_EXT	   cyan	       magenta	yellow	    black
182	DEPTH_STENCIL_MESA depth       stencil
183
184Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
185and the Frame Buffer)
186
187    The new format is added to the discussion of Obtaining Pixels from the
188    Framebuffer.  It should read " If the <format> is one of RED, GREEN,
189    BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or LUMINANCE_ALPHA, and
190    the GL is in color index mode, then the color index is obtained."
191
192    The new format is added to the discussion of Index Lookup.  It should
193    read "If <format> is one of RED, GREEN, BLUE, ALPHA, RGB, RGBA,
194    ABGR_EXT, LUMINANCE, or LUMINANCE_ALPHA, then the index is used to
195    reference 4 tables of color components: PIXEL_MAP_I_TO_R,
196    PIXEL_MAP_I_TO_G, PIXEL_MAP_I_TO_B, and PIXEL_MAP_I_TO_A."
197
198
199Additions to Chapter 5 of the 1.1 Specification (Special Functions)
200
201    None
202
203Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
204
205    None
206
207Additions to the GLX Specification
208
209    None
210
211GLX Protocol
212
213    TBD
214
215Errors
216
217    None
218
219New State
220
221    None
222
223Revision History
224
225    Version 1.0 - 23 Sep 2000
226        Keith's original version.
227
228    Version 1.1 - 3 Nov 2000
229        Brian's edits, assigned values to new enums.
230
231