summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>2019-04-30 18:28:15 +0200
committerMarek Olšák <marek.olsak@amd.com>2019-08-06 17:03:22 -0400
commit0556932f4a34e0fd6a6e080da7bf25a68f180dc3 (patch)
tree95e920b3978acb86fd3be1989ed3ab7c897a35e5 /src
parente364ddece3997d66572fd81788a00073fc53e42c (diff)
mesa: add EXT_dsa glMultiTexCoordPointerEXT function
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src')
-rw-r--r--src/mapi/glapi/gen/EXT_direct_state_access.xml8
-rw-r--r--src/mapi/glapi/gen/static_data.py1
-rw-r--r--src/mesa/main/tests/dispatch_sanity.cpp2
-rw-r--r--src/mesa/main/varray.c26
-rw-r--r--src/mesa/main/varray.h4
5 files changed, 39 insertions, 2 deletions
diff --git a/src/mapi/glapi/gen/EXT_direct_state_access.xml b/src/mapi/glapi/gen/EXT_direct_state_access.xml
index d6e61b2661d..155b2ade145 100644
--- a/src/mapi/glapi/gen/EXT_direct_state_access.xml
+++ b/src/mapi/glapi/gen/EXT_direct_state_access.xml
@@ -633,6 +633,14 @@
<param name="param" type="GLint *" />
</function>
+ <function name="MultiTexCoordPointerEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="size" type="GLint" />
+ <param name="type" type="GLenum" />
+ <param name="stride" type="GLsizei" />
+ <param name="pointer" type="const GLvoid *" />
+ </function>
+
<!-- OpenGL 1.3 -->
<function name="MatrixLoadTransposefEXT" offset="assign">
diff --git a/src/mapi/glapi/gen/static_data.py b/src/mapi/glapi/gen/static_data.py
index 4c54bf50a9e..b184fd8123d 100644
--- a/src/mapi/glapi/gen/static_data.py
+++ b/src/mapi/glapi/gen/static_data.py
@@ -1550,6 +1550,7 @@ offsets = {
"GetMultiTexGendvEXT": 1514,
"GetMultiTexGenfvEXT": 1515,
"GetMultiTexGenivEXT": 1516,
+ "MultiTexCoordPointerEXT": 1517,
}
functions = [
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index d1bc68b020b..4f8a40ba99e 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -1056,7 +1056,7 @@ const struct function common_desktop_functions_possible[] = {
{ "glCopyTextureSubImage3DEXT", 12, -1 },
/* GL_EXT_direct_state_access - GL 1.2.1 */
{ "glBindMultiTextureEXT", 12, -1 },
- //{ "glMultiTexCoordPointerEXT", 12, -1 },
+ { "glMultiTexCoordPointerEXT", 12, -1 },
{ "glMultiTexEnvfEXT", 12, -1 },
{ "glMultiTexEnvfvEXT", 12, -1 },
{ "glMultiTexEnviEXT", 12, -1 },
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index fad0c227d49..61b2bf39af9 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -1674,6 +1674,32 @@ _mesa_TexCoordPointerEXT(GLint size, GLenum type, GLsizei stride,
void GLAPIENTRY
+_mesa_MultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type,
+ GLsizei stride, const GLvoid *ptr)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ const GLint sizeMin = 1;
+ const GLuint unit = texunit - GL_TEXTURE0;
+
+ GLenum format = GL_RGBA;
+ const GLbitfield legalTypes = (SHORT_BIT | INT_BIT |
+ HALF_BIT | FLOAT_BIT | DOUBLE_BIT |
+ UNSIGNED_INT_2_10_10_10_REV_BIT |
+ INT_2_10_10_10_REV_BIT);
+
+ if (!validate_array_and_format(ctx, "glMultiTexCoordPointerEXT",
+ VERT_ATTRIB_TEX(unit), legalTypes,
+ sizeMin, 4, size, type, stride,
+ GL_FALSE, GL_FALSE, GL_FALSE, format, ptr,
+ ctx->Array.VAO))
+ return;
+
+ update_array(ctx, VERT_ATTRIB_TEX(unit), format, 4, size, type,
+ stride, GL_FALSE, GL_FALSE, GL_FALSE, ptr);
+}
+
+
+void GLAPIENTRY
_mesa_EdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *ptr)
{
(void) count;
diff --git a/src/mesa/main/varray.h b/src/mesa/main/varray.h
index 2831720edfc..1d1ce515271 100644
--- a/src/mesa/main/varray.h
+++ b/src/mesa/main/varray.h
@@ -142,7 +142,9 @@ _mesa_TexCoordPointer_no_error(GLint size, GLenum type, GLsizei stride,
extern void GLAPIENTRY
_mesa_TexCoordPointer(GLint size, GLenum type, GLsizei stride,
const GLvoid *ptr);
-
+extern void GLAPIENTRY
+_mesa_MultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type,
+ GLsizei stride, const GLvoid *ptr);
extern void GLAPIENTRY
_mesa_EdgeFlagPointer_no_error(GLsizei stride, const GLvoid *ptr);