From 43db4b8465c203f9748cd2a7e08d8242573116f1 Mon Sep 17 00:00:00 2001 From: Laura Ekstrand Date: Thu, 5 Feb 2015 13:30:50 -0800 Subject: main: Fake entry point for glClearNamedFramebufferuiv. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mesa's ClearBuffer framework is very complicated and thoroughly married to the object binding model. Moreover, the OpenGL spec for ClearBuffer is also very complicated. At some point, we should implement buffer clearing for arbitrary framebuffer objects, but for now, we will just wrap ClearBuffer. Reviewed-by: Fredrik Höglund Signed-off-by: Fredrik Höglund --- src/mesa/main/clear.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/mesa/main/clear.c') diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c index 4e029cf258f..05bbf1564be 100644 --- a/src/mesa/main/clear.c +++ b/src/mesa/main/clear.c @@ -491,6 +491,24 @@ _mesa_ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value) } +/** + * The ClearBuffer framework is so complicated and so riddled with the + * assumption that the framebuffer is bound that, for now, we will just fake + * direct state access clearing for the user. + */ +void GLAPIENTRY +_mesa_ClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer, + GLint drawbuffer, const GLuint *value) +{ + GLint oldfb; + + _mesa_GetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldfb); + _mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer); + _mesa_ClearBufferuiv(buffer, drawbuffer, value); + _mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, (GLuint) oldfb); +} + + /** * New in GL 3.0 * Clear fixed-pt or float color buffer or depth buffer (not stencil). -- cgit v1.2.3