[Mesa-dev] [PATCH 17/41] main: Added get_texobj_by_name in texparam.c.
Laura Ekstrand
laura at jlekstrand.net
Mon Dec 15 17:22:32 PST 2014
This is a convenience function for *Texture*Parameter functions.
---
src/mesa/main/texparam.c | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index df2ba3c..6121346 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -147,6 +147,44 @@ get_texobj(struct gl_context *ctx, GLenum target, GLboolean get)
return texUnit->CurrentTex[targetIndex];
}
+/**
+ * Get current texture object for given name.
+ * Return NULL if any error (and record the error).
+ * Note that proxy targets are not accepted.
+ * Only the glGetTexLevelParameter() functions accept proxy targets.
+ */
+static struct gl_texture_object *
+get_texobj_by_name(struct gl_context *ctx, GLuint texture, GLboolean get)
+{
+ struct gl_texture_object *texObj;
+
+ texObj = _mesa_lookup_texture(ctx, texture);
+ if (!texObj) {
+ /* User passed a non-generated name. */
+ /* Throw the error in the caller. */
+ return NULL;
+ }
+
+ switch (texObj->Target) {
+ case GL_TEXTURE_1D:
+ case GL_TEXTURE_1D_ARRAY:
+ case GL_TEXTURE_2D:
+ case GL_TEXTURE_2D_ARRAY:
+ case GL_TEXTURE_2D_MULTISAMPLE:
+ case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
+ case GL_TEXTURE_3D:
+ case GL_TEXTURE_CUBE_MAP:
+ case GL_TEXTURE_CUBE_MAP_ARRAY:
+ case GL_TEXTURE_RECTANGLE:
+ return texObj;
+ default:
+ _mesa_error(ctx, GL_INVALID_ENUM,
+ "gl%sTextureParameter(target)", get ? "Get" : "");
+ return NULL;
+ }
+
+}
+
/**
* Convert GL_RED/GREEN/BLUE/ALPHA/ZERO/ONE to SWIZZLE_X/Y/Z/W/ZERO/ONE.
--
2.1.0
More information about the mesa-dev
mailing list