1b8e80941SmrgName
2b8e80941Smrg
3b8e80941Smrg    MESA_framebuffer_flip_y
4b8e80941Smrg
5b8e80941SmrgName Strings
6b8e80941Smrg
7b8e80941Smrg    GL_MESA_framebuffer_flip_y
8b8e80941Smrg
9b8e80941SmrgContact
10b8e80941Smrg
11b8e80941Smrg    Fritz Koenig <frkoenig@google.com>
12b8e80941Smrg
13b8e80941SmrgContributors
14b8e80941Smrg
15b8e80941Smrg    Fritz Koenig, Google
16b8e80941Smrg    Kristian Høgsberg, Google
17b8e80941Smrg    Chad Versace, Google
18b8e80941Smrg
19b8e80941SmrgStatus
20b8e80941Smrg
21b8e80941Smrg    Proposal
22b8e80941Smrg
23b8e80941SmrgVersion
24b8e80941Smrg
25b8e80941Smrg    Version 1, June 7, 2018
26b8e80941Smrg
27b8e80941SmrgNumber
28b8e80941Smrg
29b8e80941Smrg    302
30b8e80941Smrg
31b8e80941SmrgDependencies
32b8e80941Smrg
33b8e80941Smrg    OpenGL ES 3.1 is required, for FramebufferParameteri.
34b8e80941Smrg
35b8e80941SmrgOverview
36b8e80941Smrg
37b8e80941Smrg    This extension defines a new framebuffer parameter,
38b8e80941Smrg    GL_FRAMEBUFFER_FLIP_Y_MESA, that changes the behavior of the reads and
39b8e80941Smrg    writes to the framebuffer attachment points. When GL_FRAMEBUFFER_FLIP_Y_MESA
40b8e80941Smrg    is GL_TRUE, render commands and pixel transfer operations access the
41b8e80941Smrg    backing store of each attachment point with an y-inverted coordinate
42b8e80941Smrg    system. This y-inversion is relative to the coordinate system set when
43b8e80941Smrg    GL_FRAMEBUFFER_FLIP_Y_MESA is GL_FALSE.
44b8e80941Smrg
45b8e80941Smrg    Access through TexSubImage2D and similar calls will notice the effect of
46b8e80941Smrg    the flip when they are not attached to framebuffer objects because
47b8e80941Smrg    GL_FRAMEBUFFER_FLIP_Y_MESA is associated with the framebuffer object and
48b8e80941Smrg    not the attachment points.
49b8e80941Smrg
50b8e80941SmrgIP Status
51b8e80941Smrg
52b8e80941Smrg    None
53b8e80941Smrg
54b8e80941SmrgIssues
55b8e80941Smrg
56b8e80941Smrg    None
57b8e80941Smrg
58b8e80941SmrgNew Procedures and Functions
59b8e80941Smrg
60b8e80941Smrg    None
61b8e80941Smrg
62b8e80941SmrgNew Types
63b8e80941Smrg
64b8e80941Smrg    None
65b8e80941Smrg
66b8e80941SmrgNew Tokens
67b8e80941Smrg
68b8e80941Smrg    Accepted by the <pname> argument of FramebufferParameteri and
69b8e80941Smrg    GetFramebufferParameteriv:
70b8e80941Smrg
71b8e80941Smrg        GL_FRAMEBUFFER_FLIP_Y_MESA                      0x8BBB
72b8e80941Smrg
73b8e80941SmrgErrors
74b8e80941Smrg
75b8e80941Smrg    An INVALID_OPERATION error is generated by GetFramebufferParameteriv if the
76b8e80941Smrg    default framebuffer is bound to <target> and <pname> is FRAMEBUFFER_FLIP_Y_MESA.
77b8e80941Smrg
78b8e80941SmrgRevision History
79b8e80941Smrg
80b8e80941Smrg    Version 1, June, 2018
81b8e80941Smrg        Initial draft (Fritz Koenig)
82