summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>2019-05-22 18:04:33 +0200
committerMarek Olšák <marek.olsak@amd.com>2019-08-19 18:50:08 -0400
commit0f07d18e486c56afa88e512136cf47e44a57ef92 (patch)
treea31a5ac907667c0119fa33f368c198b969a92c9c
parente8c5dc9c24ae69e53fdde5831f1d9c3bdefb9c07 (diff)
mesa: add ext_dsa GetMultiTexLevelParameterEXT
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
-rw-r--r--src/mapi/glapi/gen/EXT_direct_state_access.xml16
-rw-r--r--src/mapi/glapi/gen/static_data.py2
-rw-r--r--src/mesa/main/tests/dispatch_sanity.cpp4
-rw-r--r--src/mesa/main/texparam.c45
-rw-r--r--src/mesa/main/texparam.h10
5 files changed, 75 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 ae25bb61fdd..32fa4094981 100644
--- a/src/mapi/glapi/gen/EXT_direct_state_access.xml
+++ b/src/mapi/glapi/gen/EXT_direct_state_access.xml
@@ -434,6 +434,22 @@
<param name="pixels" type="GLvoid*" />
</function>
+ <function name="GetMultiTexLevelParameterivEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="pname" type="GLenum" />
+ <param name="params" type="GLint*" />
+ </function>
+
+ <function name="GetMultiTexLevelParameterfvEXT">
+ <param name="texunit" type="GLenum" />
+ <param name="target" type="GLenum" />
+ <param name="level" type="GLint" />
+ <param name="pname" type="GLenum" />
+ <param name="params" type="GLfloat*" />
+ </function>
+
<function name="MultiTexImage1DEXT">
<param name="texunit" type="GLenum" />
<param name="target" type="GLenum" />
diff --git a/src/mapi/glapi/gen/static_data.py b/src/mapi/glapi/gen/static_data.py
index 0c53ef1ac45..c1b3c6a5119 100644
--- a/src/mapi/glapi/gen/static_data.py
+++ b/src/mapi/glapi/gen/static_data.py
@@ -1565,6 +1565,8 @@ offsets = {
"CompressedMultiTexSubImage2DEXT": 1529,
"CompressedMultiTexSubImage3DEXT": 1530,
"GetCompressedMultiTexImageEXT": 1531,
+ "GetMultiTexLevelParameterivEXT": 1532,
+ "GetMultiTexLevelParameterfvEXT": 1533,
}
functions = [
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index 6ccdf3f83f8..6ba5180592e 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -1087,8 +1087,8 @@ const struct function common_desktop_functions_possible[] = {
{ "glGetMultiTexImageEXT", 12, -1 },
{ "glGetMultiTexParameterfvEXT", 12, -1 },
{ "glGetMultiTexParameterivEXT", 12, -1 },
- //{ "glGetMultiTexLevelParameterfvEXT", 12, -1 },
- //{ "glGetMultiTexLevelParameterivEXT", 12, -1 },
+ { "glGetMultiTexLevelParameterfvEXT", 12, -1 },
+ { "glGetMultiTexLevelParameterivEXT", 12, -1 },
{ "glMultiTexImage3DEXT", 12, -1 },
{ "glMultiTexSubImage3DEXT", 12, -1 },
{ "glCopyMultiTexSubImage3DEXT", 12, -1 },
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index 9b3f77d1a75..ade10b2e2b4 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -1978,6 +1978,30 @@ _mesa_GetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level,
}
void GLAPIENTRY
+_mesa_GetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level,
+ GLenum pname, GLfloat *params)
+{
+ struct gl_texture_object *texObj;
+ GLint iparam;
+ GET_CURRENT_CONTEXT(ctx);
+
+ texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
+ texunit - GL_TEXTURE0,
+ true,
+ "glGetMultiTexLevelParameterfvEXT");
+ if (!texObj)
+ return;
+
+ if (!valid_tex_level_parameteriv_target(ctx, texObj->Target, true))
+ return;
+
+ get_tex_level_parameteriv(ctx, texObj, texObj->Target, level,
+ pname, &iparam, true);
+
+ *params = (GLfloat) iparam;
+}
+
+void GLAPIENTRY
_mesa_GetTextureLevelParameteriv(GLuint texture, GLint level,
GLenum pname, GLint *params)
{
@@ -2015,6 +2039,27 @@ _mesa_GetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level,
pname, params, true);
}
+void GLAPIENTRY
+_mesa_GetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level,
+ GLenum pname, GLint *params)
+{
+ struct gl_texture_object *texObj;
+ GET_CURRENT_CONTEXT(ctx);
+
+ texObj = _mesa_get_texobj_by_target_and_texunit(ctx, target,
+ texunit - GL_TEXTURE0,
+ true,
+ "glGetMultiTexLevelParameterivEXT");
+ if (!texObj)
+ return;
+
+ if (!valid_tex_level_parameteriv_target(ctx, texObj->Target, true))
+ return;
+
+ get_tex_level_parameteriv(ctx, texObj, texObj->Target, level,
+ pname, params, true);
+}
+
/**
* This isn't exposed to the rest of the driver because it is a part of the
diff --git a/src/mesa/main/texparam.h b/src/mesa/main/texparam.h
index fa837261402..858a5126a84 100644
--- a/src/mesa/main/texparam.h
+++ b/src/mesa/main/texparam.h
@@ -107,6 +107,16 @@ _mesa_GetTextureLevelParameterivEXT(GLuint texture, GLenum target,
GLint *params);
extern void GLAPIENTRY
+_mesa_GetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target,
+ GLint level, GLenum pname,
+ GLfloat *params);
+
+extern void GLAPIENTRY
+_mesa_GetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target,
+ GLint level, GLenum pname,
+ GLint *params);
+
+extern void GLAPIENTRY
_mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params );
extern void GLAPIENTRY