Patent ID: 7414635

Claim:
A graphic primitive clipping system that clips triangular primitives relative to a predetermined screen region, each primitive defined by location values XSTART, YSTART, XEND, and YEND; XSTART and XEND defining an X direction extent and location of the primitive in the coordinate system, and YTOP and YBOTTOM defining a Y direction extent and location of the primitive in the coordinate system, a screen region defined by limit values XLEFT, XRIGHT, YTOP, and YBOTTOM; XLEFT and XRIGHT defining an X direction extent and location of the screen region in the coordinate system, and YTOP and YBOTTOM defining a Y direction extent and location of the screen region in the coordinate system, the primitive further defined by first and second x direction values of 0 and 1, respectively, for an x direction XDIR in the coordinate system as, respectively, left to right and right to left relative to the screen region, and first and second y direction values as 0 and 1, respectively, for a y direction YDIR in the coordinate system as, respectively, top to bottom and bottom to top, comprising: a primitive locator module having an input for receiving primitives and having an output for supplying only primitives that are at least partially within the screen region, primitives being totally outside the screen area if at least one of the following is logically true given a start point X=XSTART and Y=YSTART for a primitive: XDIR AND ((X<XLEFT) OR (XEND>XRIGHT)) XDIR AND ((X>XRIGHT) OR (XEND>XLEFT)) YDIR AND ((Y<YTOP) OR (YEND>YBOTTOM)) YDIR AND ((Y>YBOTTOM) OR (YEND<YTOP)); an edge walker module having an input operatively connected to the output of the primitive locator module and having an output for supplying data identifying the portion of the primitive inside of the screen region, the edge walker module structured such that at least a portion of the primitive that is inside the screen region, given a start point X=XSTART and Y=YSTART for the primitive, being found by: (1) incrementing Y if a first value, (((YDIR AND (Y>YBOTTOM)) OR (( YDIR AND (Y<YTOP))), is logically true; (2) incrementing X if a second value, (((XDIR AND (X>XRIGHT)) OR (( XDIR AND (X<XLEFT))), is logically true; and (3) repeating (1) and (2) until the first and second values are not true, which identifies a beginning of a portion of the primitive that is inside of the screen region; and a span walker having an input operatively connected to the output of the edge walker and an output for supplying filled pixels for pixels in the portion of the primitive inside of the screen region, the span walker having filled all pixels in the portion of the primitive inside of the screen region when one of the following is true: (XDIR AND (X<XLEFT)), ( XDIR AND (X>XRIGHT)), (YDIR AND (Y<YTOP)), ( YDIR AND (Y>YBOTTOM)).