From: Marek Olšák <marek.ol...@amd.com> Cc: 17.1 <mesa-sta...@lists.freedesktop.org> --- src/mesa/main/viewport.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c index bd58044..6d3e576 100644 --- a/src/mesa/main/viewport.c +++ b/src/mesa/main/viewport.c @@ -33,20 +33,22 @@ #include "enums.h" #include "macros.h" #include "mtypes.h" #include "viewport.h" static void set_viewport_no_notify(struct gl_context *ctx, unsigned idx, GLfloat x, GLfloat y, GLfloat width, GLfloat height) { + FLUSH_VERTICES(ctx, _NEW_VIEWPORT); + /* clamp width and height to the implementation dependent range */ width = MIN2(width, (GLfloat) ctx->Const.MaxViewportWidth); height = MIN2(height, (GLfloat) ctx->Const.MaxViewportHeight); /* The GL_ARB_viewport_array spec says: * * "The location of the viewport's bottom-left corner, given by (x,y), * are clamped to be within the implementation-dependent viewport * bounds range. The viewport bounds range [min, max] tuple may be * determined by calling GetFloatv with the symbolic constant @@ -64,21 +66,20 @@ set_viewport_no_notify(struct gl_context *ctx, unsigned idx, if (ctx->ViewportArray[idx].X == x && ctx->ViewportArray[idx].Width == width && ctx->ViewportArray[idx].Y == y && ctx->ViewportArray[idx].Height == height) return; ctx->ViewportArray[idx].X = x; ctx->ViewportArray[idx].Width = width; ctx->ViewportArray[idx].Y = y; ctx->ViewportArray[idx].Height = height; - ctx->NewState |= _NEW_VIEWPORT; } struct gl_viewport_inputs { GLfloat X, Y; /**< position */ GLfloat Width, Height; /**< size */ }; struct gl_depthrange_inputs { GLdouble Near, Far; /**< Depth buffer range */ }; @@ -233,23 +234,24 @@ _mesa_ViewportIndexedfv(GLuint index, const GLfloat *v) } static void set_depth_range_no_notify(struct gl_context *ctx, unsigned idx, GLclampd nearval, GLclampd farval) { if (ctx->ViewportArray[idx].Near == nearval && ctx->ViewportArray[idx].Far == farval) return; + FLUSH_VERTICES(ctx, _NEW_VIEWPORT); + ctx->ViewportArray[idx].Near = CLAMP(nearval, 0.0, 1.0); ctx->ViewportArray[idx].Far = CLAMP(farval, 0.0, 1.0); - ctx->NewState |= _NEW_VIEWPORT; } void _mesa_set_depth_range(struct gl_context *ctx, unsigned idx, GLclampd nearval, GLclampd farval) { set_depth_range_no_notify(ctx, idx, nearval, farval); if (ctx->Driver.DepthRange) ctx->Driver.DepthRange(ctx); -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev