diff options
author | Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> | 2019-04-30 18:28:15 +0200 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2019-08-06 17:03:22 -0400 |
commit | 0556932f4a34e0fd6a6e080da7bf25a68f180dc3 (patch) | |
tree | 95e920b3978acb86fd3be1989ed3ab7c897a35e5 /src | |
parent | e364ddece3997d66572fd81788a00073fc53e42c (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.xml | 8 | ||||
-rw-r--r-- | src/mapi/glapi/gen/static_data.py | 1 | ||||
-rw-r--r-- | src/mesa/main/tests/dispatch_sanity.cpp | 2 | ||||
-rw-r--r-- | src/mesa/main/varray.c | 26 | ||||
-rw-r--r-- | src/mesa/main/varray.h | 4 |
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); |