mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 00:00:12 +01:00
main: Fake entry point for glClearNamedFramebufferuiv.
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 <fredrik@kde.org> Signed-off-by: Fredrik Höglund <fredrik@kde.org>
This commit is contained in:
parent
6236c47799
commit
43db4b8465
4 changed files with 30 additions and 0 deletions
|
|
@ -204,6 +204,13 @@
|
|||
<param name="value" type="const GLint *" />
|
||||
</function>
|
||||
|
||||
<function name="ClearNamedFramebufferuiv" offset="assign">
|
||||
<param name="framebuffer" type="GLuint" />
|
||||
<param name="buffer" type="GLenum" />
|
||||
<param name="drawbuffer" type="GLint" />
|
||||
<param name="value" type="const GLuint *" />
|
||||
</function>
|
||||
|
||||
<function name="BlitNamedFramebuffer" offset="assign">
|
||||
<param name="readFramebuffer" type="GLuint" />
|
||||
<param name="drawFramebuffer" type="GLuint" />
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -58,6 +58,10 @@ _mesa_ClearNamedFramebufferiv(GLuint framebuffer, GLenum buffer,
|
|||
extern void GLAPIENTRY
|
||||
_mesa_ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_ClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer,
|
||||
GLint drawbuffer, const GLuint *value);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value);
|
||||
|
||||
|
|
|
|||
|
|
@ -987,6 +987,7 @@ const struct function gl_core_functions_possible[] = {
|
|||
{ "glInvalidateNamedFramebufferSubData", 45, -1 },
|
||||
{ "glInvalidateNamedFramebufferData", 45, -1 },
|
||||
{ "glClearNamedFramebufferiv", 45, -1 },
|
||||
{ "glClearNamedFramebufferuiv", 45, -1 },
|
||||
{ "glBlitNamedFramebuffer", 45, -1 },
|
||||
{ "glCheckNamedFramebufferStatus", 45, -1 },
|
||||
{ "glGetNamedFramebufferAttachmentParameteriv", 45, -1 },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue