From: Samuel Pitoiset Date: Thu, 22 Jun 2017 09:58:44 +0000 (+0200) Subject: mesa: add clip_control() helper X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5a6779c7222e6c3b8ebe59cac6f098f8f9e82719;p=mesa.git mesa: add clip_control() helper Signed-off-by: Samuel Pitoiset Reviewed-by: Timothy Arceri --- diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c index 5529f55ee71..b424d8f6546 100644 --- a/src/mesa/main/viewport.c +++ b/src/mesa/main/viewport.c @@ -420,40 +420,16 @@ void _mesa_init_viewport(struct gl_context *ctx) } -extern void GLAPIENTRY -_mesa_ClipControl(GLenum origin, GLenum depth) +static void +clip_control(struct gl_context *ctx, GLenum origin, GLenum depth) { - GET_CURRENT_CONTEXT(ctx); - - if (MESA_VERBOSE&VERBOSE_API) - _mesa_debug(ctx, "glClipControl(%s, %s)\n", - _mesa_enum_to_string(origin), - _mesa_enum_to_string(depth)); - - ASSERT_OUTSIDE_BEGIN_END(ctx); - - if (!ctx->Extensions.ARB_clip_control) { - _mesa_error(ctx, GL_INVALID_OPERATION, "glClipControl"); - return; - } - - if (origin != GL_LOWER_LEFT && origin != GL_UPPER_LEFT) { - _mesa_error(ctx, GL_INVALID_ENUM, "glClipControl"); - return; - } - - if (depth != GL_NEGATIVE_ONE_TO_ONE && depth != GL_ZERO_TO_ONE) { - _mesa_error(ctx, GL_INVALID_ENUM, "glClipControl"); - return; - } - if (ctx->Transform.ClipOrigin == origin && ctx->Transform.ClipDepthMode == depth) return; /* Affects transform state and the viewport transform */ FLUSH_VERTICES(ctx, ctx->DriverFlags.NewClipControl ? 0 : - _NEW_TRANSFORM | _NEW_VIEWPORT); + _NEW_TRANSFORM | _NEW_VIEWPORT); ctx->NewDriverState |= ctx->DriverFlags.NewClipControl; if (ctx->Transform.ClipOrigin != origin) { @@ -477,6 +453,37 @@ _mesa_ClipControl(GLenum origin, GLenum depth) } } + +void GLAPIENTRY +_mesa_ClipControl(GLenum origin, GLenum depth) +{ + GET_CURRENT_CONTEXT(ctx); + + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "glClipControl(%s, %s)\n", + _mesa_enum_to_string(origin), + _mesa_enum_to_string(depth)); + + ASSERT_OUTSIDE_BEGIN_END(ctx); + + if (!ctx->Extensions.ARB_clip_control) { + _mesa_error(ctx, GL_INVALID_OPERATION, "glClipControl"); + return; + } + + if (origin != GL_LOWER_LEFT && origin != GL_UPPER_LEFT) { + _mesa_error(ctx, GL_INVALID_ENUM, "glClipControl"); + return; + } + + if (depth != GL_NEGATIVE_ONE_TO_ONE && depth != GL_ZERO_TO_ONE) { + _mesa_error(ctx, GL_INVALID_ENUM, "glClipControl"); + return; + } + + clip_control(ctx, origin, depth); +} + /** * Computes the scaling and the translation part of the * viewport transform matrix of the \param i-th viewport