--- src/mesa/main/fbobject.c | 18 ++++++++++++++++++ src/mesa/main/fbobject.h | 4 ++++ 2 files changed, 22 insertions(+)
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index b361967..8bc7ec7 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -119,6 +119,24 @@ _mesa_lookup_renderbuffer(struct gl_context *ctx, GLuint id) return rb; } +/** + * A convenience function for direct state access that throws + * GL_INVALID_OPERATION if the renderbuffer id is not found in the hash table. + */ +struct gl_renderbuffer * +_mesa_lookup_renderbuffer_err(struct gl_context *ctx, GLuint id, + const char *func) +{ + struct gl_renderbuffer *rb; + + rb = _mesa_lookup_renderbuffer(ctx, id); + if (!rb) + _mesa_error(ctx, GL_INVALID_OPERATION, + "%s(non-generated renderbuffer name=%u)", func, id); + + return rb; +} + /** * Helper routine for getting a gl_framebuffer. diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h index 6bd8968..5143743 100644 --- a/src/mesa/main/fbobject.h +++ b/src/mesa/main/fbobject.h @@ -64,6 +64,10 @@ _mesa_get_incomplete_framebuffer(void); extern struct gl_renderbuffer * _mesa_lookup_renderbuffer(struct gl_context *ctx, GLuint id); +extern struct gl_renderbuffer * +_mesa_lookup_renderbuffer_err(struct gl_context *ctx, GLuint id, + const char *func); + extern struct gl_framebuffer * _mesa_lookup_framebuffer(struct gl_context *ctx, GLuint id); -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev