diff options
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/texobj.c | 16 | ||||
-rw-r--r-- | src/mesa/main/texobj.h | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index d199bd7fdb5..c309eb8d2be 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -60,6 +60,22 @@ _mesa_lookup_texture(struct gl_context *ctx, GLuint id) _mesa_HashLookup(ctx->Shared->TexObjects, id); } +/** + * Wrapper around _mesa_lookup_texture that throws GL_INVALID_OPERATION if id + * is not in the hash table. After calling _mesa_error, it returns NULL. + */ +struct gl_texture_object * +_mesa_lookup_texture_err(struct gl_context *ctx, GLuint id, const char* func) +{ + struct gl_texture_object *texObj; + + texObj = _mesa_lookup_texture(ctx, id); /* Returns NULL if not found. */ + + if (!texObj) + _mesa_error(ctx, GL_INVALID_OPERATION, "%s(texture)", func); + + return texObj; +} void _mesa_begin_texture_lookups(struct gl_context *ctx) diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h index f33991dd2d6..109264e8901 100644 --- a/src/mesa/main/texobj.h +++ b/src/mesa/main/texobj.h @@ -51,6 +51,9 @@ extern "C" { extern struct gl_texture_object * _mesa_lookup_texture(struct gl_context *ctx, GLuint id); +extern struct gl_texture_object * +_mesa_lookup_texture_err(struct gl_context *ctx, GLuint id, const char* func); + extern void _mesa_begin_texture_lookups(struct gl_context *ctx); |