Mesa (mesa_7_7_branch): st/mesa: fix unsigned/signed breakage in scissor

Brian Paul brianp at kemper.freedesktop.org
Sun Jan 24 23:55:49 UTC 2010


Module: Mesa
Branch: mesa_7_7_branch
Commit: fdfa4c85297d5d25e7256bf73e35309b358af86c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fdfa4c85297d5d25e7256bf73e35309b358af86c

Author: Xavier Chantry <chantry.xavier at gmail.com>
Date:   Sat Jan 23 17:27:21 2010 +0100

st/mesa: fix unsigned/signed breakage in scissor

commit 53174afeeb introduced a portability change that converted GLint x,y
to GLuint. That breaks when x and y are negative, which seems to be allowed,
and which at least one game uses : teeworlds.

Rather than simply reverting the change, it seems possible to convert the
16bit unsigned to GLint so that comparisons are made between signed integers
instead.  This hopefully does not break anything while keeping MSVC happy.

Signed-off-by: Xavier Chantry <chantry.xavier at gmail.com>
Signed-off-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/state_tracker/st_atom_scissor.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_scissor.c b/src/mesa/state_tracker/st_atom_scissor.c
index 3fd59e1..fb666b8 100644
--- a/src/mesa/state_tracker/st_atom_scissor.c
+++ b/src/mesa/state_tracker/st_atom_scissor.c
@@ -52,14 +52,14 @@ update_scissor( struct st_context *st )
    scissor.maxy = fb->Height;
 
    if (st->ctx->Scissor.Enabled) {
-      if ((GLuint)st->ctx->Scissor.X > scissor.minx)
+      if (st->ctx->Scissor.X > (GLint)scissor.minx)
          scissor.minx = st->ctx->Scissor.X;
-      if ((GLuint)st->ctx->Scissor.Y > scissor.miny)
+      if (st->ctx->Scissor.Y > (GLint)scissor.miny)
          scissor.miny = st->ctx->Scissor.Y;
 
-      if ((GLuint)st->ctx->Scissor.X + st->ctx->Scissor.Width < scissor.maxx)
+      if (st->ctx->Scissor.X + st->ctx->Scissor.Width < (GLint)scissor.maxx)
          scissor.maxx = st->ctx->Scissor.X + st->ctx->Scissor.Width;
-      if ((GLuint)st->ctx->Scissor.Y + st->ctx->Scissor.Height < scissor.maxy)
+      if (st->ctx->Scissor.Y + st->ctx->Scissor.Height < (GLint)scissor.maxy)
          scissor.maxy = st->ctx->Scissor.Y + st->ctx->Scissor.Height;
 
       /* check for null space */




More information about the mesa-commit mailing list