mesa: add clear() helper
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
@@ -140,22 +140,17 @@ color_buffer_writes_enabled(const struct gl_context *ctx, unsigned idx)
|
||||
* GL_RENDER then requests the driver to clear the buffers, via the
|
||||
* dd_function_table::Clear callback.
|
||||
*/
|
||||
void GLAPIENTRY
|
||||
_mesa_Clear( GLbitfield mask )
|
||||
static ALWAYS_INLINE void
|
||||
clear(struct gl_context *ctx, GLbitfield mask, bool no_error)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
FLUSH_VERTICES(ctx, 0);
|
||||
|
||||
FLUSH_CURRENT(ctx, 0);
|
||||
|
||||
if (MESA_VERBOSE & VERBOSE_API)
|
||||
_mesa_debug(ctx, "glClear 0x%x\n", mask);
|
||||
|
||||
if (!no_error) {
|
||||
if (mask & ~(GL_COLOR_BUFFER_BIT |
|
||||
GL_DEPTH_BUFFER_BIT |
|
||||
GL_STENCIL_BUFFER_BIT |
|
||||
GL_ACCUM_BUFFER_BIT)) {
|
||||
/* invalid bit set */
|
||||
_mesa_error( ctx, GL_INVALID_VALUE, "glClear(0x%x)", mask);
|
||||
return;
|
||||
}
|
||||
@@ -168,12 +163,13 @@ _mesa_Clear( GLbitfield mask )
|
||||
_mesa_error( ctx, GL_INVALID_VALUE, "glClear(GL_ACCUM_BUFFER_BIT)");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (ctx->NewState) {
|
||||
_mesa_update_state( ctx ); /* update _Xmin, etc */
|
||||
}
|
||||
|
||||
if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
|
||||
if (!no_error && ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
|
||||
_mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
|
||||
"glClear(incomplete framebuffer)");
|
||||
return;
|
||||
@@ -227,6 +223,18 @@ _mesa_Clear( GLbitfield mask )
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_Clear(GLbitfield mask)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
if (MESA_VERBOSE & VERBOSE_API)
|
||||
_mesa_debug(ctx, "glClear 0x%x\n", mask);
|
||||
|
||||
clear(ctx, mask, false);
|
||||
}
|
||||
|
||||
|
||||
/** Returned by make_color_buffer_mask() for errors */
|
||||
#define INVALID_MASK ~0x0U
|
||||
|
||||
|
Reference in New Issue
Block a user