diff options
Diffstat (limited to 'src/mesa/main/api_validate.c')
-rw-r--r-- | src/mesa/main/api_validate.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index 44d164ad355..af4f7cb4bf3 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -189,6 +189,19 @@ _mesa_valid_to_render(struct gl_context *ctx, const char *where) return GL_FALSE; } + /* From the GL_NV_fill_rectangle spec: + * + * "An INVALID_OPERATION error is generated by Begin or any Draw command if + * only one of the front and back polygon mode is FILL_RECTANGLE_NV." + */ + if ((ctx->Polygon.FrontMode == GL_FILL_RECTANGLE_NV) != + (ctx->Polygon.BackMode == GL_FILL_RECTANGLE_NV)) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "GL_FILL_RECTANGLE_NV must be used as both front/back " + "polygon mode or neither"); + return GL_FALSE; + } + #ifdef DEBUG if (ctx->_Shader->Flags & GLSL_LOG) { struct gl_program **prog = ctx->_Shader->CurrentProgram; |