X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmesa%2Fmain%2Fclear.c;h=6beff9ed842bc7e38a8cd93429c92298b8184c1f;hb=36b3e7ea90ee275451184b287577f4b88962df81;hp=ea75a95184ecb09d36621e34c615d6b7a596a48c;hpb=54bd9a1d6698760e714606b111fe49ddae2f01f1;p=mesa.git diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c index ea75a95184e..6beff9ed842 100644 --- a/src/mesa/main/clear.c +++ b/src/mesa/main/clear.c @@ -118,7 +118,7 @@ color_buffer_writes_enabled(const struct gl_context *ctx, unsigned idx) if (rb) { for (c = 0; c < 4; c++) { - if (ctx->Color.ColorMask[idx][c] && + if (GET_COLORMASK_BIT(ctx->Color.ColorMask, idx, c) && _mesa_format_has_color_component(rb->Format, c)) { return true; } @@ -194,9 +194,9 @@ clear(struct gl_context *ctx, GLbitfield mask, bool no_error) if (mask & GL_COLOR_BUFFER_BIT) { GLuint i; for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) { - GLint buf = ctx->DrawBuffer->_ColorDrawBufferIndexes[i]; + gl_buffer_index buf = ctx->DrawBuffer->_ColorDrawBufferIndexes[i]; - if (buf >= 0 && color_buffer_writes_enabled(ctx, i)) { + if (buf != BUFFER_NONE && color_buffer_writes_enabled(ctx, i)) { bufferMask |= 1 << buf; } } @@ -321,9 +321,10 @@ make_color_buffer_mask(struct gl_context *ctx, GLint drawbuffer) break; default: { - GLint buf = ctx->DrawBuffer->_ColorDrawBufferIndexes[drawbuffer]; + gl_buffer_index buf = + ctx->DrawBuffer->_ColorDrawBufferIndexes[drawbuffer]; - if (buf >= 0 && att[buf].Renderbuffer) { + if (buf != BUFFER_NONE && att[buf].Renderbuffer) { mask |= 1 << buf; } } @@ -414,6 +415,14 @@ clear_bufferiv(struct gl_context *ctx, GLenum buffer, GLint drawbuffer, } +void GLAPIENTRY +_mesa_ClearBufferiv_no_error(GLenum buffer, GLint drawbuffer, const GLint *value) +{ + GET_CURRENT_CONTEXT(ctx); + clear_bufferiv(ctx, buffer, drawbuffer, value, true); +} + + void GLAPIENTRY _mesa_ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value) {