blob: bfa93390a985e54bbc925978b6ceac7b051ab47c [file] [log] [blame]
From 31ad3175085fde259f47f3ca9fe3b609b3aa007a Mon Sep 17 00:00:00 2001
From: Brendan King <Brendan.King@imgtec.com>
Date: Mon, 10 Mar 2014 12:27:03 +0000
Subject: [PATCH 08/33] Add support for various GLES extensions
Add support for:
EXT_multisampled_render_to_texture
EXT_occlusion_query_boolean
IMG_multisampled_render_to_texture
OES_matrix_palette
---
src/mapi/glapi/gen/es_EXT.xml | 102 +++++++++++++++++++++++++++++---
src/mapi/glapi/gen/gl_genexec.py | 1 +
src/mesa/Makefile.sources | 4 +-
src/mesa/main/es_extension_stubs.c | 118 +++++++++++++++++++++++++++++++++++++
src/mesa/main/es_extension_stubs.h | 48 +++++++++++++++
5 files changed, 263 insertions(+), 10 deletions(-)
create mode 100644 src/mesa/main/es_extension_stubs.c
create mode 100644 src/mesa/main/es_extension_stubs.h
diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml
index 3f9129f..dd3c3db 100644
--- a/src/mapi/glapi/gen/es_EXT.xml
+++ b/src/mapi/glapi/gen/es_EXT.xml
@@ -285,28 +285,25 @@
<enum name="WEIGHT_ARRAY_BUFFER_BINDING_OES" value="0x889E"/>
<enum name="MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES" value="0x8B9E"/>
- <function name="CurrentPaletteMatrixOES" alias="CurrentPaletteMatrixARB"
- exec="skip">
+ <function name="CurrentPaletteMatrixOES" es1="1.0">
<param name="matrixpaletteindex" type="GLuint"/>
</function>
- <!-- no offset -->
- <function name="LoadPaletteFromModelViewMatrixOES" exec="skip">
+ <function name="LoadPaletteFromModelViewMatrixOES" es1="1.0">
</function>
- <function name="MatrixIndexPointerOES" alias="MatrixIndexPointerARB"
- exec="skip">
+ <function name="MatrixIndexPointerOES" es1="1.0">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
- <param name="pointer" type="const GLvoid *"/>
+ <param name="pointer" type="GLvoid *"/>
</function>
- <function name="WeightPointerOES" alias="WeightPointerARB" exec="skip">
+ <function name="WeightPointerOES" es1="1.0">
<param name="size" type="GLint"/>
<param name="type" type="GLenum"/>
<param name="stride" type="GLsizei"/>
- <param name="pointer" type="const GLvoid *"/>
+ <param name="pointer" type="GLvoid *"/>
</function>
</category>
@@ -673,6 +670,31 @@
</enum>
</category>
+<!-- 74. GL_IMG_multisampled_render_to_texture -->
+<category name="GL_IMG_multisampled_render_to_texture" number="74">
+ <enum name="RENDERBUFFER_SAMPLES_IMG" value="0x9133"/>
+ <enum name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG" value="0x9134"/>
+ <enum name="MAX_SAMPLES_IMG" value="0x9135"/>
+ <enum name="TEXTURE_SAMPLES_IMG" value="0x9136"/>
+
+ <function name="RenderbufferStorageMultisampleIMG" es2="2.0">
+ <param name="target" type="GLenum"/>
+ <param name="samples" type="GLsizei"/>
+ <param name="internalformat" type="GLenum"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ </function>
+
+ <function name="FramebufferTexture2DMultisampleIMG" es2="2.0">
+ <param name="target" type="GLenum"/>
+ <param name="attachment" type="GLenum"/>
+ <param name="textarget" type="GLenum"/>
+ <param name="texture" type="GLuint"/>
+ <param name="level" type="GLint"/>
+ <param name="samples" type="GLsizei"/>
+ </function>
+</category>
+
<!-- 87. GL_OES_EGL_image_external -->
<category name="GL_OES_EGL_image_external" number="87">
<enum name="TEXTURE_EXTERNAL_OES" value="0x8D65"/>
@@ -751,6 +773,51 @@
</function>
</category>
+<!-- 100. GL_EXT_occlusion_query_boolean -->
+<category name="GL_EXT_occlusion_query_boolean" number="100">
+ <enum name="ANY_SAMPLES_PASSED_EXT" value="0x8C2F"/>
+ <enum name="ANY_SAMPLES_PASSED_CONSERVATIVE_EXT" value="0x8D6A"/>
+ <enum name="CURRENT_QUERY_EXT" value="0x8865"/>
+ <enum name="QUERY_RESULT_EXT" value="0x8866"/>
+ <enum name="QUERY_RESULT_AVAILABLE_EXT" value="0x8867"/>
+
+ <function name="GenQueriesEXT" es2="2.0">
+ <param name="n" type="GLsizei"/>
+ <param name="ids" type="GLuint *"/>
+ </function>
+
+ <function name="DeleteQueriesEXT" es2="2.0">
+ <param name="n" type="GLsizei"/>
+ <param name="ids" type="const GLuint *"/>
+ </function>
+
+ <function name="IsQueryEXT" es2="2.0">
+ <param name="id" type="GLuint"/>
+ <return type="GLboolean"/>
+ </function>
+
+ <function name="BeginQueryEXT" es2="2.0">
+ <param name="target" type="GLenum"/>
+ <param name="id" type="GLuint"/>
+ </function>
+
+ <function name="EndQueryEXT" es2="2.0">
+ <param name="target" type="GLenum"/>
+ </function>
+
+ <function name="GetQueryivEXT" es2="2.0">
+ <param name="target" type="GLenum"/>
+ <param name="pname" type="GLenum"/>
+ <param name="params" type="GLint *"/>
+ </function>
+
+ <function name="GetQueryObjectuivEXT" es2="2.0">
+ <param name="id" type="GLuint"/>
+ <param name="pname" type="GLenum"/>
+ <param name="params" type="GLuint *"/>
+ </function>
+</category>
+
<!-- 103. GL_EXT_texture_rg -->
<category name="GL_EXT_texture_rg" number="103">
<enum name="RED_EXT" value="0x1903"/>
@@ -759,6 +826,23 @@
<enum name="RG8_EXT" value="0x822B"/>
</category>
+<!-- 106. GL_EXT_multisampled_render_to_texture -->
+<category name="GL_EXT_multisampled_render_to_texture" number="106">
+ <enum name="RENDERBUFFER_SAMPLES_EXT" value="0x8CAB"/>
+ <enum name="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT" value="0x8D56"/>
+ <enum name="MAX_SAMPLES_EXT" value="0x8D57"/>
+ <enum name="FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT" value="0x8D6C"/>
+
+ <function name="FramebufferTexture2DMultisampleEXT" es2="2.0">
+ <param name="target" type="GLenum"/>
+ <param name="attachment" type="GLenum"/>
+ <param name="textarget" type="GLenum"/>
+ <param name="texture" type="GLuint"/>
+ <param name="level" type="GLint"/>
+ <param name="samples" type="GLsizei"/>
+ </function>
+</category>
+
<!-- 107. GL_EXT_robustness -->
<xi:include href="EXT_robustness.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py
index 57e155b..d13e2d3 100644
--- a/src/mapi/glapi/gen/gl_genexec.py
+++ b/src/mapi/glapi/gen/gl_genexec.py
@@ -73,6 +73,7 @@ header = """/**
#include "main/rastpos.h"
#include "main/enable.h"
#include "main/errors.h"
+#include "main/es_extension_stubs.h"
#include "main/es1_conversion.h"
#include "main/eval.h"
#include "main/get.h"
diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources
index 86fbf39..d3c6fb0 100644
--- a/src/mesa/Makefile.sources
+++ b/src/mesa/Makefile.sources
@@ -3,7 +3,9 @@
# this is part of MAIN_FILES
MAIN_ES_FILES = \
main/es1_conversion.c \
- main/es1_conversion.h
+ main/es1_conversion.h \
+ main/es_extension_stubs.c \
+ main/es_extension_stubs.h
MAIN_FILES = \
main/accum.c \
diff --git a/src/mesa/main/es_extension_stubs.c b/src/mesa/main/es_extension_stubs.c
new file mode 100644
index 0000000..ce074fc
--- /dev/null
+++ b/src/mesa/main/es_extension_stubs.c
@@ -0,0 +1,118 @@
+
+#include "glheader.h"
+#include "errors.h"
+#include "es_extension_stubs.h"
+
+void GLAPIENTRY
+_mesa_FramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glFramebufferTexture2DMultisampleEXT");
+}
+
+void GLAPIENTRY
+_mesa_GenQueriesEXT(GLsizei n, GLuint *ids)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGenQueriesEXT");
+}
+
+void GLAPIENTRY
+_mesa_DeleteQueriesEXT(GLsizei n, const GLuint *ids)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glDeleteQueriesEXT");
+}
+
+GLboolean GLAPIENTRY
+_mesa_IsQueryEXT(GLuint id)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glIsQueryEXT");
+
+ return GL_FALSE;
+}
+
+void GLAPIENTRY
+_mesa_BeginQueryEXT(GLenum target, GLuint id)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glBeginQueryEXT");
+}
+
+void GLAPIENTRY
+_mesa_EndQueryEXT(GLenum target)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glEndQueryEXT");
+}
+
+void GLAPIENTRY
+_mesa_GetQueryivEXT(GLenum target, GLenum pname, GLint *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetQueryivEXT");
+}
+
+void GLAPIENTRY
+_mesa_GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetQueryObjectuivEXT");
+}
+
+void GLAPIENTRY
+_mesa_RenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glRenderbufferStorageMultisampleIMG");
+}
+
+void GLAPIENTRY
+_mesa_FramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glFramebufferTexture2DMultisampleIMG");
+}
+
+void GLAPIENTRY
+_mesa_CurrentPaletteMatrixOES(GLuint index)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glCurrentPaletteMatrixOES");
+}
+
+void GLAPIENTRY
+_mesa_LoadPaletteFromModelViewMatrixOES(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glLoadPaletteFromModelViewMatrixOES");
+}
+
+void GLAPIENTRY
+_mesa_MatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glMatrixIndexPointerOES");
+}
+
+void GLAPIENTRY
+_mesa_WeightPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ _mesa_error(ctx, GL_INVALID_OPERATION, "glWeightPointerOES");
+}
diff --git a/src/mesa/main/es_extension_stubs.h b/src/mesa/main/es_extension_stubs.h
new file mode 100644
index 0000000..385b20f
--- /dev/null
+++ b/src/mesa/main/es_extension_stubs.h
@@ -0,0 +1,48 @@
+#ifndef ES_EXTENSION_STUBS_H
+#define ES_EXTENSION_STUBS_H
+
+#include "mtypes.h"
+
+void GLAPIENTRY
+_mesa_FramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+
+void GLAPIENTRY
+_mesa_GenQueriesEXT(GLsizei n, GLuint *ids);
+
+void GLAPIENTRY
+_mesa_DeleteQueriesEXT(GLsizei n, const GLuint *ids);
+
+GLboolean GLAPIENTRY
+_mesa_IsQueryEXT(GLuint id);
+
+void GLAPIENTRY
+_mesa_BeginQueryEXT(GLenum target, GLuint id);
+
+void GLAPIENTRY
+_mesa_EndQueryEXT(GLenum target);
+
+void GLAPIENTRY
+_mesa_GetQueryivEXT(GLenum target, GLenum pname, GLint *params);
+
+void GLAPIENTRY
+_mesa_GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params);
+
+void GLAPIENTRY
+_mesa_RenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+void GLAPIENTRY
+_mesa_FramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+
+void GLAPIENTRY
+_mesa_CurrentPaletteMatrixOES(GLuint index);
+
+void GLAPIENTRY
+_mesa_LoadPaletteFromModelViewMatrixOES(void);
+
+void GLAPIENTRY
+_mesa_MatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+
+void GLAPIENTRY
+_mesa_WeightPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+
+#endif
--
2.7.4