clear(struct gl_context *ctx, GLbitfield mask, bool no_error)
{
FLUSH_VERTICES(ctx, 0);
- FLUSH_CURRENT(ctx, 0);
if (!no_error) {
if (mask & ~(GL_COLOR_BUFFER_BIT |
const GLint *value, bool no_error)
{
FLUSH_VERTICES(ctx, 0);
- FLUSH_CURRENT(ctx, 0);
if (ctx->NewState) {
_mesa_update_state( ctx );
const GLuint *value, bool no_error)
{
FLUSH_VERTICES(ctx, 0);
- FLUSH_CURRENT(ctx, 0);
if (ctx->NewState) {
_mesa_update_state( ctx );
}
+ if (!no_error && ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE) {
+ _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION,
+ "glClearBufferuiv(incomplete framebuffer)");
+ return;
+ }
+
switch (buffer) {
case GL_COLOR:
{
const GLfloat *value, bool no_error)
{
FLUSH_VERTICES(ctx, 0);
- FLUSH_CURRENT(ctx, 0);
if (ctx->NewState) {
_mesa_update_state( ctx );
}
+ if (!no_error && ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE) {
+ _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION,
+ "glClearBufferfv(incomplete framebuffer)");
+ return;
+ }
+
switch (buffer) {
case GL_DEPTH:
/* Page 264 (page 280 of the PDF) of the OpenGL 3.0 spec says:
GLbitfield mask = 0;
FLUSH_VERTICES(ctx, 0);
- FLUSH_CURRENT(ctx, 0);
if (!no_error) {
if (buffer != GL_DEPTH_STENCIL) {
drawbuffer);
return;
}
-
- if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
- _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
- "glClearBufferfi(incomplete framebuffer)");
- return;
- }
}
if (ctx->RasterDiscard)
_mesa_update_state( ctx );
}
+ if (!no_error && ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
+ _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
+ "glClearBufferfi(incomplete framebuffer)");
+ return;
+ }
+
if (ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer)
mask |= BUFFER_BIT_DEPTH;
if (ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Renderbuffer)