summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2002-10-02 17:31:05 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2002-10-02 17:31:05 +0000
commitadc4d21dbb2435defa6b3673d3e62356ff18cdcf (patch)
treef16c03d821842916cd81638942a2206993c2aedc
parentefaa8be77f3c9f77f9abf97875c0fb3006e82aa0 (diff)
finished the spec
-rw-r--r--docs/MESA_agp_offset.spec29
-rw-r--r--docs/MESA_ycbcr_texture.spec96
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