Brian Paul | fcb23bb | 2000-11-03 14:58:45 +0000 | [diff] [blame] | 1 | Name |
| 2 | |
| 3 | MESA_packed_depth_stencil |
| 4 | |
| 5 | Name Strings |
| 6 | |
| 7 | GL_MESA_packed_depth_stencil |
| 8 | |
| 9 | Contact |
| 10 | |
| 11 | Keith Whitwell, VA Linux Systems Inc. (keithw 'at' valinux.com) |
| 12 | Brian Paul, VA Linux Systems Inc. (brianp 'at' valinux.com) |
| 13 | |
| 14 | Status |
| 15 | |
Brian Paul | 361a9ac | 2003-09-19 14:58:21 +0000 | [diff] [blame] | 16 | Obsolete. |
Brian Paul | fcb23bb | 2000-11-03 14:58:45 +0000 | [diff] [blame] | 17 | |
| 18 | Version |
| 19 | |
Brian Paul | fcb23bb | 2000-11-03 14:58:45 +0000 | [diff] [blame] | 20 | |
| 21 | Number |
| 22 | |
| 23 | ??? |
| 24 | |
| 25 | Dependencies |
| 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 | |
| 32 | Overview |
| 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 | |
| 39 | Issues: |
| 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 | |
| 55 | New Procedures and Functions |
| 56 | |
| 57 | None. |
| 58 | |
| 59 | New 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 | |
| 72 | Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation) |
| 73 | |
| 74 | None |
| 75 | |
| 76 | Additions 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 | |
| 184 | Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations |
| 185 | and 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 | |
| 199 | Additions to Chapter 5 of the 1.1 Specification (Special Functions) |
| 200 | |
| 201 | None |
| 202 | |
| 203 | Additions to Chapter 6 of the 1.1 Specification (State and State Requests) |
| 204 | |
| 205 | None |
| 206 | |
| 207 | Additions to the GLX Specification |
| 208 | |
| 209 | None |
| 210 | |
| 211 | GLX Protocol |
| 212 | |
| 213 | TBD |
| 214 | |
| 215 | Errors |
| 216 | |
| 217 | None |
| 218 | |
| 219 | New State |
| 220 | |
| 221 | None |
| 222 | |
| 223 | Revision 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 | |