diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2002-10-02 17:31:05 +0000 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2002-10-02 17:31:05 +0000 |
commit | adc4d21dbb2435defa6b3673d3e62356ff18cdcf (patch) | |
tree | f16c03d821842916cd81638942a2206993c2aedc | |
parent | efaa8be77f3c9f77f9abf97875c0fb3006e82aa0 (diff) |
finished the spec
-rw-r--r-- | docs/MESA_agp_offset.spec | 29 | ||||
-rw-r--r-- | docs/MESA_ycbcr_texture.spec | 96 |
2 files changed, 115 insertions, 10 deletions
diff --git a/docs/MESA_agp_offset.spec b/docs/MESA_agp_offset.spec index 7e3d92d19b..f85d44c528 100644 --- a/docs/MESA_agp_offset.spec +++ b/docs/MESA_agp_offset.spec @@ -13,7 +13,8 @@ Contact Status - Shipping (Mesa 4.0.4 and later) + Shipping (Mesa 4.0.4 and later. Only implemented in particular + XFree86/DRI drivers.) Version @@ -31,8 +32,11 @@ Dependencies Overview - This extensions provides a way to convert pointers in an AGP memory region - into byte offsets into the AGP apeture. + This extensions provides a way to convert pointers in an AGP memory + region into byte offsets into the AGP aperture. + Note, this extension depends on GLX_NV_vertex_array_range, for which + no real specification exists. See GL_NV_vertex_array_range for more + information. IP Status @@ -44,7 +48,7 @@ Issues New Procedures and Functions - uint glXGetAGPOffsetMESA( const void *pointer ) + GLuint glXGetAGPOffsetMESA( const GLvoid *pointer ) New Tokens @@ -54,10 +58,22 @@ Additions to the OpenGL 1.4 Specification None -Additions to Chapter ??? the GLX 1.4 Specification (??? chapter name) +Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors) - XXX to do + Add a new section, 3.6 as follows: + 3.6 AGP Memory Access + + On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV + and freed with glXFreeMemoryNV. Sometimes it's useful to know where a + block of AGP memory is located with respect to the start of the AGP + aperature. The function + + GLuint glXGetAGPOffsetMESA( const GLvoid *pointer ) + + Returns the offset of the given memory block from the start of AGP + memory in basic machine units (i.e. bytes). If pointer is invalid + the value ~0 will be returned. GLX Protocol @@ -75,3 +91,4 @@ New State Revision History 20 September 2002 - Initial draft + 2 October 2002 - finished GLX chapter 3 additions diff --git a/docs/MESA_ycbcr_texture.spec b/docs/MESA_ycbcr_texture.spec index 24218717e3..a0ef310dc6 100644 --- a/docs/MESA_ycbcr_texture.spec +++ b/docs/MESA_ycbcr_texture.spec @@ -27,10 +27,22 @@ 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 in the YCbCr format. + This extension supports texture images in the YCbCr format. There is + no support for converting YCbCr images to RGB or vice versa. The + intention is for YCbCr image data to be directly sent to the renderer + without any pixel transfer operations. 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 @@ -62,7 +74,74 @@ Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation) Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization) - XXX update texture image section + In section 3.6.4, Rasterization of Pixel Rectangles, on page 102, + 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 3 YCBCR_422_MESA + UNSIGNED_SHORT_8_8_REV_MESA ushort 3 YCBCR_422_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 102, + add the following to Table 3.12 (Packed pixel fiedl assignments): + + First Second Third Fourth + Format Element Element Element Element + ------ ------- ------- ------- ------- + YCBCR_422_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. + + + 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) @@ -98,11 +177,20 @@ Errors INVALID_ENUM is generated by TexImage2D if <format> is MESA_YCBCR but <internalFormat> is not MESA_YCBCR. - XXX more + 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 - None + 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 |