summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Noblesmith <nobled@dreamwidth.org>2013-07-19 21:22:16 +0000
committerDylan Noblesmith <nobled@dreamwidth.org>2013-09-16 15:57:25 +0000
commit9908b4ae1f6ee749a3566c001dce373786a9cfeb (patch)
treec139a982485af7655d53048e5e73385a459093ab
parenteb6f8eab7e0cfac8b352feb5b0d4c95a574170c5 (diff)
mesa: implement 4 glGetTextureParameter*EXT entrypoints
-rw-r--r--src/mesa/main/texparam.c99
-rw-r--r--src/mesa/main/texparam.h13
2 files changed, 112 insertions, 0 deletions
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index 1cecfeef72..0fc8d24ef6 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -2251,3 +2251,102 @@ _mesa_GetMultiTexParameterIuivEXT(GLenum texunit, GLenum target,
}
}
}
+
+
+
+void GLAPIENTRY
+_mesa_GetTextureParameterfvEXT(GLuint texture, GLenum target,
+ GLenum pname, GLfloat *params )
+{
+ struct gl_texture_object *obj;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (!valid_texparam_target(ctx, target, "GetTextureParameterfvEXT"))
+ return;
+
+ obj = _mesa_get_and_init_texture(ctx, texture, target,
+ "glGetTextureParameterfvEXT");
+ if (!obj)
+ return;
+
+ get_tex_paramf(ctx, obj, target, pname, params);
+}
+
+void GLAPIENTRY
+_mesa_GetTextureParameterivEXT(GLuint texture, GLenum target,
+ GLenum pname, GLint *params )
+{
+ struct gl_texture_object *obj;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (!valid_texparam_target(ctx, target, "GetTextureParameterivEXT"))
+ return;
+
+ obj = _mesa_get_and_init_texture(ctx, texture, target,
+ "glGetTextureParameterivEXT");
+ if (!obj)
+ return;
+
+ get_tex_parami(ctx, obj, target, pname, params);
+}
+
+/** New in GL 3.0 */
+void GLAPIENTRY
+_mesa_GetTextureParameterIivEXT(GLuint texture, GLenum target,
+ GLenum pname, GLint *params)
+{
+ struct gl_texture_object *texObj;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (!valid_texparam_target(ctx, target, "GetTextureParameterIivEXT"))
+ return;
+
+ texObj = _mesa_get_and_init_texture(ctx, texture, target,
+ "glGetTextureParameterIivEXT");
+ if (!texObj)
+ return;
+
+ switch (pname) {
+ case GL_TEXTURE_BORDER_COLOR:
+ COPY_4V(params, texObj->Sampler.BorderColor.i);
+ break;
+ default:
+ get_tex_parami(ctx, texObj, target, pname, params);
+ }
+}
+
+
+/** New in GL 3.0 */
+void GLAPIENTRY
+_mesa_GetTextureParameterIuivEXT(GLuint texture, GLenum target,
+ GLenum pname, GLuint *params)
+{
+ struct gl_texture_object *texObj;
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (!valid_texparam_target(ctx, target, "GetTextureParameterIuivEXT"))
+ return;
+
+ texObj = _mesa_get_and_init_texture(ctx, texture, target,
+ "glGetTextureParameterIuivEXT");
+ if (!texObj)
+ return;
+
+ switch (pname) {
+ case GL_TEXTURE_BORDER_COLOR:
+ COPY_4V(params, texObj->Sampler.BorderColor.i);
+ break;
+ default:
+ {
+ GLint ip[4];
+ get_tex_parami(ctx, texObj, target, pname, ip);
+ params[0] = ip[0];
+ if (pname == GL_TEXTURE_SWIZZLE_RGBA_EXT ||
+ pname == GL_TEXTURE_CROP_RECT_OES) {
+ params[1] = ip[1];
+ params[2] = ip[2];
+ params[3] = ip[3];
+ }
+ }
+ }
+}
diff --git a/src/mesa/main/texparam.h b/src/mesa/main/texparam.h
index 05398abe82..e71e89208e 100644
--- a/src/mesa/main/texparam.h
+++ b/src/mesa/main/texparam.h
@@ -126,4 +126,17 @@ void GLAPIENTRY
_mesa_GetMultiTexParameterIuivEXT(GLenum texunit, GLenum target,
GLenum pname, GLuint *params);
+void GLAPIENTRY
+_mesa_GetTextureParameterfvEXT(GLuint texture, GLenum target,
+ GLenum pname, GLfloat *params );
+void GLAPIENTRY
+_mesa_GetTextureParameterivEXT(GLuint texture, GLenum target,
+ GLenum pname, GLint *params );
+void GLAPIENTRY
+_mesa_GetTextureParameterIivEXT(GLuint texture, GLenum target,
+ GLenum pname, GLint *params);
+void GLAPIENTRY
+_mesa_GetTextureParameterIuivEXT(GLuint texture, GLenum target,
+ GLenum pname, GLuint *params);
+
#endif /* TEXPARAM_H */