Skip to content

Commit

Permalink
Fixed bug 2012 - Algorithm logic getting wrong in ComputeOutCode
Browse files Browse the repository at this point in the history
Nitz

I was going through the SDL_IntersectRectAndLine function and wondered to see the ComputeOutCode function implementation.

The problem in this algo is, x and y axis are getting check with respect to 0, Which is wrong, it should be get checked with respect to rectangle x and y axis.
  • Loading branch information
slouken committed Oct 21, 2013
1 parent 6f76bc2 commit 8093055
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/video/SDL_rect.c
Expand Up @@ -296,15 +296,16 @@ SDL_EnclosePoints(const SDL_Point * points, int count, const SDL_Rect * clip,
#define CODE_LEFT 4
#define CODE_RIGHT 8

static int ComputeOutCode(const SDL_Rect * rect, int x, int y)
static int
ComputeOutCode(const SDL_Rect * rect, int x, int y)
{
int code = 0;
if (y < 0) {
if (y < rect->y) {
code |= CODE_TOP;
} else if (y >= rect->y + rect->h) {
code |= CODE_BOTTOM;
}
if (x < 0) {
if (x < rect->x) {
code |= CODE_LEFT;
} else if (x >= rect->x + rect->w) {
code |= CODE_RIGHT;
Expand Down

0 comments on commit 8093055

Please sign in to comment.