diff options
author | Paul Berry <[email protected]> | 2012-09-13 10:20:07 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2012-09-14 14:50:41 -0700 |
commit | a29a4566354af53e3bdc4a925eddc0d7af2bf384 (patch) | |
tree | 56c28978d6fd4215f6ac839ad4d609637778154f /src/mesa/main | |
parent | 15bf3103b48a5928321fe56fbb3ed28a0f314418 (diff) |
meta: Refactor handling of GL_MULTISAMPLE.
In commit 055093e (meta: remove call to _meta_in_progress(), fix
multisample enable/disable), we created a meta_set_enable() function
that could be used by meta ops to enable and disable GL_MULTISAMPLE
even when the GLES API was in use (the GLES API doesn't support
GL_MULTISAMPLE; it behaves as if it is always enabled). This created
some unfortunate code duplication between meta_set_enable() and the
existing _mesa_set_enable() function.
This patch eliminates the duplication by creating a
_mesa_set_multisample() function, which is used by both meta ops and
_mesa_set_enable() to enable/disable GL_MULTISAMPLE.
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/enable.c | 24 | ||||
-rw-r--r-- | src/mesa/main/enable.h | 4 |
2 files changed, 23 insertions, 5 deletions
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c index 14eea53fefd..5dd88331114 100644 --- a/src/mesa/main/enable.c +++ b/src/mesa/main/enable.c @@ -251,6 +251,23 @@ enable_texture(struct gl_context *ctx, GLboolean state, GLbitfield texBit) /** + * Helper function to enable or disable GL_MULTISAMPLE, skipping the check for + * whether the API supports it (GLES doesn't). + */ +void +_mesa_set_multisample(struct gl_context *ctx, GLboolean state) +{ + if (ctx->Multisample.Enabled == state) + return; + FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); + ctx->Multisample.Enabled = state; + + if (ctx->Driver.Enable) { + ctx->Driver.Enable(ctx, GL_MULTISAMPLE, state); + } +} + +/** * Helper function to enable or disable state. * * \param ctx GL context. @@ -767,11 +784,8 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state) case GL_MULTISAMPLE_ARB: if (!_mesa_is_desktop_gl(ctx) && ctx->API != API_OPENGLES) goto invalid_enum_error; - if (ctx->Multisample.Enabled == state) - return; - FLUSH_VERTICES(ctx, _NEW_MULTISAMPLE); - ctx->Multisample.Enabled = state; - break; + _mesa_set_multisample(ctx, state); + return; case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: if (ctx->Multisample.SampleAlphaToCoverage == state) return; diff --git a/src/mesa/main/enable.h b/src/mesa/main/enable.h index 6d90c170c8a..c49b4948dea 100644 --- a/src/mesa/main/enable.h +++ b/src/mesa/main/enable.h @@ -67,5 +67,9 @@ _mesa_EnableClientState( GLenum cap ); extern void GLAPIENTRY _mesa_DisableClientState( GLenum cap ); +extern void +_mesa_set_multisample(struct gl_context *ctx, GLboolean state); + + #endif |