forked from KolibriOS/kolibrios
139 lines
3.6 KiB
RPMSpec
139 lines
3.6 KiB
RPMSpec
|
Name
|
||
|
|
||
|
MESA_pack_invert
|
||
|
|
||
|
Name Strings
|
||
|
|
||
|
GL_MESA_pack_invert
|
||
|
|
||
|
Contact
|
||
|
|
||
|
Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
|
||
|
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
||
|
|
||
|
Status
|
||
|
|
||
|
Shipping (Mesa 4.0.4 and later)
|
||
|
|
||
|
Version
|
||
|
|
||
|
1.0
|
||
|
|
||
|
Number
|
||
|
|
||
|
TBD
|
||
|
|
||
|
Dependencies
|
||
|
|
||
|
OpenGL 1.0 or later is required
|
||
|
This extensions is written against the OpenGL 1.4 Specification.
|
||
|
|
||
|
Overview
|
||
|
|
||
|
This extension adds a new pixel storage parameter to indicate that
|
||
|
images are to be packed in top-to-bottom order instead of OpenGL's
|
||
|
conventional bottom-to-top order. Only pixel packing can be
|
||
|
inverted (i.e. for glReadPixels, glGetTexImage, glGetConvolutionFilter,
|
||
|
etc).
|
||
|
|
||
|
Almost all known image file formats store images in top-to-bottom
|
||
|
order. As it is, OpenGL reads images from the frame buffer in
|
||
|
bottom-to-top order. Thus, images usually have to be inverted before
|
||
|
writing them to a file with image I/O libraries. This extension
|
||
|
allows images to be read such that inverting isn't needed.
|
||
|
|
||
|
IP Status
|
||
|
|
||
|
None
|
||
|
|
||
|
Issues
|
||
|
|
||
|
1. Should we also define UNPACK_INVERT_MESA for glDrawPixels, etc?
|
||
|
|
||
|
Resolved: No, we're only concerned with pixel packing. There are other
|
||
|
solutions for inverting images when using glDrawPixels (negative Y pixel
|
||
|
zoom) or glTexImage (invert the vertex T coordinates). It would be easy
|
||
|
enough to define a complementary extension for pixel packing in the
|
||
|
future if needed.
|
||
|
|
||
|
New Procedures and Functions
|
||
|
|
||
|
None
|
||
|
|
||
|
New Tokens
|
||
|
|
||
|
Accepted by the <pname> parameter of PixelStorei and PixelStoref
|
||
|
and the <pname> parameter of GetIntegerv, GetFloatv, GetDoublev
|
||
|
and GetBooleanv:
|
||
|
|
||
|
PACK_INVERT_MESA 0x8758
|
||
|
|
||
|
Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
|
||
|
|
||
|
None
|
||
|
|
||
|
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
|
||
|
|
||
|
None
|
||
|
|
||
|
Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
|
||
|
Operations and the Frame Buffer)
|
||
|
|
||
|
Add the following entry to table 4.4 (PixelStore parameters) on page 182:
|
||
|
|
||
|
Parameter Name Type Initial Value Valid Range
|
||
|
---------------------------------------------------------
|
||
|
PACK_INVERT_MESA boolean FALSE TRUE/FALSE
|
||
|
|
||
|
In the section labeled "Placement in Client Memory" on page 184
|
||
|
insert the following text into the paragraph before the sentence
|
||
|
that starts with "If the format is RED, GREEN, BLUE...":
|
||
|
|
||
|
"The parameter PACK_INVERT_MESA controls whether the image is packed
|
||
|
in bottom-to-top order (the default) or top-to-bottom order. Equation
|
||
|
3.8 is modified as follows:
|
||
|
|
||
|
... the first element of the Nth row is indicated by
|
||
|
|
||
|
p + Nk, if PACK_INVERT_MESA is false
|
||
|
p + k * (H - 1) - Nk, if PACK_INVERT_MESA is true, where H is the
|
||
|
image height
|
||
|
"
|
||
|
|
||
|
Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
|
||
|
|
||
|
None
|
||
|
|
||
|
Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
|
||
|
State Requests)
|
||
|
|
||
|
None
|
||
|
|
||
|
Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
|
||
|
|
||
|
None
|
||
|
|
||
|
Additions to the AGL/GLX/WGL Specifications
|
||
|
|
||
|
None
|
||
|
|
||
|
GLX Protocol
|
||
|
|
||
|
None
|
||
|
|
||
|
Errors
|
||
|
|
||
|
None
|
||
|
|
||
|
New State
|
||
|
|
||
|
Add the following entry to table 6.20 (Pixels) on page 235:
|
||
|
|
||
|
Get Value Type Get Cmd Initial Value Description Sec Attribute
|
||
|
--------------------------------------------------------------------------------------------------
|
||
|
PACK_INVERT_MESA boolean GetBoolean FALSE Value of PACK_INVERT_MESA 4.3.2 pixel-store
|
||
|
|
||
|
Revision History
|
||
|
|
||
|
21 September 2002 - Initial draft
|