Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4358 Serge 1
Name
2
 
3
    MESA_pack_invert
4
 
5
Name Strings
6
 
7
    GL_MESA_pack_invert
8
 
9
Contact
10
 
11
    Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
12
    Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com)
13
 
14
Status
15
 
16
    Shipping (Mesa 4.0.4 and later)
17
 
18
Version
19
 
20
    1.0
21
 
22
Number
23
 
24
    TBD
25
 
26
Dependencies
27
 
28
    OpenGL 1.0 or later is required
29
    This extensions is written against the OpenGL 1.4 Specification.
30
 
31
Overview
32
 
33
    This extension adds a new pixel storage parameter to indicate that
34
    images are to be packed in top-to-bottom order instead of OpenGL's
35
    conventional bottom-to-top order.  Only pixel packing can be
36
    inverted (i.e. for glReadPixels, glGetTexImage, glGetConvolutionFilter,
37
    etc).
38
 
39
    Almost all known image file formats store images in top-to-bottom
40
    order.  As it is, OpenGL reads images from the frame buffer in
41
    bottom-to-top order.  Thus, images usually have to be inverted before
42
    writing them to a file with image I/O libraries.  This extension
43
    allows images to be read such that inverting isn't needed.
44
 
45
IP Status
46
 
47
    None
48
 
49
Issues
50
 
51
    1. Should we also define UNPACK_INVERT_MESA for glDrawPixels, etc?
52
 
53
    Resolved:  No, we're only concerned with pixel packing.  There are other
54
    solutions for inverting images when using glDrawPixels (negative Y pixel
55
    zoom) or glTexImage (invert the vertex T coordinates).  It would be easy
56
    enough to define a complementary extension for pixel packing in the
57
    future if needed.
58
 
59
New Procedures and Functions
60
 
61
    None
62
 
63
New Tokens
64
 
65
    Accepted by the  parameter of PixelStorei and PixelStoref
66
    and the  parameter of GetIntegerv, GetFloatv, GetDoublev
67
    and GetBooleanv:
68
 
69
        PACK_INVERT_MESA                   0x8758
70
 
71
Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
72
 
73
    None
74
 
75
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
76
 
77
    None
78
 
79
Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment
80
Operations and the Frame Buffer)
81
 
82
    Add the following entry to table 4.4 (PixelStore parameters) on page 182:
83
 
84
    Parameter Name       Type    Initial Value    Valid Range
85
    ---------------------------------------------------------
86
    PACK_INVERT_MESA     boolean     FALSE        TRUE/FALSE
87
 
88
    In the section labeled "Placement in Client Memory" on page 184
89
    insert the following text into the paragraph before the sentence
90
    that starts with "If the format is RED, GREEN, BLUE...":
91
 
92
    "The parameter PACK_INVERT_MESA controls whether the image is packed
93
     in bottom-to-top order (the default) or top-to-bottom order.  Equation
94
     3.8 is modified as follows:
95
 
96
     ... the first element of the Nth row is indicated by
97
 
98
         p + Nk,                if PACK_INVERT_MESA is false
99
         p + k * (H - 1) - Nk,  if PACK_INVERT_MESA is true, where H is the
100
                                image height
101
    "
102
 
103
Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions)
104
 
105
    None
106
 
107
Additions to Chapter 6 of the OpenGL 1.4 Specification (State and
108
State Requests)
109
 
110
    None
111
 
112
Additions to Appendix A of the OpenGL 1.4 Specification (Invariance)
113
 
114
    None
115
 
116
Additions to the AGL/GLX/WGL Specifications
117
 
118
    None
119
 
120
GLX Protocol
121
 
122
    None
123
 
124
Errors
125
 
126
    None
127
 
128
New State
129
 
130
    Add the following entry to table 6.20 (Pixels) on page 235:
131
 
132
    Get Value         Type     Get Cmd    Initial Value  Description                Sec    Attribute
133
    --------------------------------------------------------------------------------------------------
134
    PACK_INVERT_MESA  boolean  GetBoolean  FALSE         Value of PACK_INVERT_MESA  4.3.2  pixel-store
135
 
136
Revision History
137
 
138
    21 September 2002 - Initial draft