Merge pull request #194 from fritzk/extension/MESA_framebuffer_flip_y

Add MESA_framebuffer_flip_y extension
diff --git a/api/GL/glext.h b/api/GL/glext.h
index acf881b..aa99931 100644
--- a/api/GL/glext.h
+++ b/api/GL/glext.h
@@ -51,7 +51,7 @@
 #define GLAPI extern
 #endif
 
-#define GL_GLEXT_VERSION 20180525
+#define GL_GLEXT_VERSION 20180717
 
 /* Generated C header for:
  * API: gl
diff --git a/api/GLES/gl.h b/api/GLES/gl.h
index 6955f6a..f8ac1a7 100644
--- a/api/GLES/gl.h
+++ b/api/GLES/gl.h
@@ -36,7 +36,7 @@
 
 #include <GLES/glplatform.h>
 
-/* Generated on date 20180525 */
+/* Generated on date 20180717 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES/glext.h b/api/GLES/glext.h
index 6c9c9d2..6f91dfc 100644
--- a/api/GLES/glext.h
+++ b/api/GLES/glext.h
@@ -38,7 +38,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20180525 */
+/* Generated on date 20180717 */
 
 /* Generated C header for:
  * API: gles1
diff --git a/api/GLES2/gl2.h b/api/GLES2/gl2.h
index 5e8e4c5..3032c88 100644
--- a/api/GLES2/gl2.h
+++ b/api/GLES2/gl2.h
@@ -44,7 +44,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20180525 */
+/* Generated on date 20180717 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/api/GLES2/gl2ext.h b/api/GLES2/gl2ext.h
index 94d5dba..893d940 100644
--- a/api/GLES2/gl2ext.h
+++ b/api/GLES2/gl2ext.h
@@ -38,7 +38,7 @@
 #define GL_APIENTRYP GL_APIENTRY*
 #endif
 
-/* Generated on date 20180525 */
+/* Generated on date 20180717 */
 
 /* Generated C header for:
  * API: gles2
@@ -2395,6 +2395,11 @@
 #endif
 #endif /* GL_INTEL_performance_query */
 
+#ifndef GL_MESA_framebuffer_flip_y
+#define GL_MESA_framebuffer_flip_y 1
+#define GL_FRAMEBUFFER_FLIP_Y_MESA        0x8BBB
+#endif /* GL_MESA_framebuffer_flip_y */
+
 #ifndef GL_MESA_program_binary_formats
 #define GL_MESA_program_binary_formats 1
 #define GL_PROGRAM_BINARY_FORMAT_MESA     0x875F
diff --git a/api/GLES3/gl3.h b/api/GLES3/gl3.h
index 639df8c..1314433 100644
--- a/api/GLES3/gl3.h
+++ b/api/GLES3/gl3.h
@@ -44,7 +44,7 @@
 #define GL_GLES_PROTOTYPES 1
 #endif
 
-/* Generated on date 20180525 */
+/* Generated on date 20180717 */
 
 /* Generated C header for:
  * API: gles2
diff --git a/extensions/MESA/MESA_framebuffer_flip_y.txt b/extensions/MESA/MESA_framebuffer_flip_y.txt
new file mode 100644
index 0000000..8fffb3f
--- /dev/null
+++ b/extensions/MESA/MESA_framebuffer_flip_y.txt
@@ -0,0 +1,83 @@
+Name
+
+    MESA_framebuffer_flip_y
+
+Name Strings
+
+    GL_MESA_framebuffer_flip_y
+
+Contact
+
+    Fritz Koenig <frkoenig@google.com>
+
+Contributors
+
+    Fritz Koenig, Google
+    Kristian Høgsberg, Google
+    Chad Versace, Google
+
+Status
+
+    Proposal
+
+Version
+
+    Version 1, June 7, 2018
+
+Number
+
+    302
+
+Dependencies
+
+    OpenGL ES 3.1 is required, for FramebufferParameteri.
+
+Overview
+
+    This extension defines a new framebuffer parameter,
+    GL_FRAMEBUFFER_FLIP_Y_MESA, that changes the behavior of the reads and
+    writes to the framebuffer attachment points. When GL_FRAMEBUFFER_FLIP_Y_MESA
+    is GL_TRUE, render commands and pixel transfer operations access the
+    backing store of each attachment point with an y-inverted coordinate
+    system. This y-inversion is relative to the coordinate system set when
+    GL_FRAMEBUFFER_FLIP_Y_MESA is GL_FALSE.
+
+    Access through TexSubImage2D and similar calls will notice the effect of
+    the flip when they are not attached to framebuffer objects because
+    GL_FRAMEBUFFER_FLIP_Y_MESA is associated with the framebuffer object and
+    not the attachment points.
+
+IP Status
+
+    None
+
+Issues
+
+    None
+
+New Procedures and Functions
+
+    None
+
+New Types
+
+    None
+
+New Tokens
+
+    Accepted by the <pname> argument of FramebufferParameteri and
+    GetFramebufferParameteriv:
+
+        GL_FRAMEBUFFER_FLIP_Y_MESA                      0x8BBB
+
+Errors
+
+    An INVALID_OPERATION error is generated by GetFramebufferParameteriv if the
+    default framebuffer is bound to <target> and <pname> is FRAMEBUFFER_FLIP_Y_MESA.
+
+
+
+Revision History
+
+    Version 1, June, 2018
+        Initial draft (Fritz Koenig)
diff --git a/extensions/esext.php b/extensions/esext.php
index 941dc6a..60d4d61 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -627,4 +627,6 @@
 </li>
 <li value=301><a href="extensions/EXT/EXT_EGL_image_storage.txt">GL_EXT_EGL_image_storage</a>
 </li>
+<li value=302><a href="extensions/MESA/MESA_framebuffer_flip_y.txt">GL_MESA_framebuffer_flip_y</a>
+</li>
 </ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index 6e6b158..edeabca 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -2910,6 +2910,12 @@
         'supporters' : { 'MESA' },
         'url' : 'extensions/MESA/GLX_MESA_copy_sub_buffer.txt',
     },
+    'GL_MESA_framebuffer_flip_y' : {
+        'esnumber' : 302,
+        'flags' : { 'public' },
+        'supporters' : { 'MESA' },
+        'url' : 'extensions/MESA/MESA_framebuffer_flip_y.txt',
+    },
     'GL_MESA_pack_invert' : {
         'number' : 300,
         'flags' : { 'public' },
diff --git a/xml/gl.xml b/xml/gl.xml
index ff4376b..29d5139 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -7835,6 +7835,7 @@
         <enum value="0x8BB8" name="GL_TILE_RASTER_ORDER_FIXED_MESA"/>
         <enum value="0x8BB9" name="GL_TILE_RASTER_ORDER_INCREASING_X_MESA"/>
         <enum value="0x8BBA" name="GL_TILE_RASTER_ORDER_INCREASING_Y_MESA"/>
+        <enum value="0x8BBB" name="GL_FRAMEBUFFER_FLIP_Y_MESA" />
     </enums>
 
     <enums namespace="GL" start="0x8BC0" end="0x8BFF" vendor="QCOM" comment="Reassigned from AMD to QCOM">
@@ -45799,6 +45800,11 @@
                 <enum name="GL_TEXTURE_2D_STACK_BINDING_MESAX"/>
             </require>
         </extension>
+        <extension name="GL_MESA_framebuffer_flip_y" supported="gles2">
+            <require>
+                <enum name="GL_FRAMEBUFFER_FLIP_Y_MESA"/>
+            </require>
+        </extension>
         <extension name="GL_MESA_pack_invert" supported="gl">
             <require>
                 <enum name="GL_PACK_INVERT_MESA"/>