PolygonUnrollA.h File Reference

PolygonUnrollA.h contains defines for unrolled loops. This version uses immediate data for everything. More...


Defines

#define EVENODD_LINE_UNROLL_INIT()
#define EVENODD_LINE_UNROLL_0(aScanline, aX, aSlope, aOffsets)
#define EVENODD_LINE_UNROLL_1(aScanline, aX, aSlope, aOffsets)
#define EVENODD_LINE_UNROLL_2(aScanline, aX, aSlope, aOffsets)
#define EVENODD_LINE_UNROLL_3(aScanline, aX, aSlope, aOffsets)
#define EVENODD_LINE_UNROLL_4(aScanline, aX, aSlope, aOffsets)
#define EVENODD_LINE_UNROLL_5(aScanline, aX, aSlope, aOffsets)
#define EVENODD_LINE_UNROLL_6(aScanline, aX, aSlope, aOffsets)
#define EVENODD_LINE_UNROLL_7(aScanline, aX, aSlope, aOffsets)
#define NONZERO_LINE_UNROLL_INIT()
#define NONZERO_LINE_UNROLL_0(aWindingBuffer, aX, aSlope, aOffsets, aWinding)
#define NONZERO_LINE_UNROLL_1(aWindingBuffer, aX, aSlope, aOffsets, aWinding)
#define NONZERO_LINE_UNROLL_2(aWindingBuffer, aX, aSlope, aOffsets, aWinding)
#define NONZERO_LINE_UNROLL_3(aWindingBuffer, aX, aSlope, aOffsets, aWinding)
#define NONZERO_LINE_UNROLL_4(aWindingBuffer, aX, aSlope, aOffsets, aWinding)
#define NONZERO_LINE_UNROLL_5(aWindingBuffer, aX, aSlope, aOffsets, aWinding)
#define NONZERO_LINE_UNROLL_6(aWindingBuffer, aX, aSlope, aOffsets, aWinding)
#define NONZERO_LINE_UNROLL_7(aWindingBuffer, aX, aSlope, aOffsets, aWinding)


Detailed Description

PolygonUnrollA.h contains defines for unrolled loops. This version uses immediate data for everything.

Scanline edge-flag algorithm for antialiasing
Copyright (c) 2005-2007 Kiia Kallio

http://mlab.uiah.fi/~kkallio/antialiasing/

This code is distributed under the three-clause BSD license. Read the LICENSE file or visit the URL above for details.

Id
Date
Revision

Define Documentation

#define EVENODD_LINE_UNROLL_0 aScanline,
aX,
aSlope,
aOffsets   ) 
 

Value:

__evenodd_line_xp__ = aX + aOffsets[0]; \
        aX += aSlope; \
        __evenodd_line_xp__ = FIXED_TO_INT(__evenodd_line_xp__); \
        aScanline[__evenodd_line_xp__] ^= __evenodd_line_mask__; \
        __evenodd_line_mask__ <<= 1;

#define EVENODD_LINE_UNROLL_1 aScanline,
aX,
aSlope,
aOffsets   ) 
 

Value:

__evenodd_line_xp__ = aX + aOffsets[1]; \
        aX += aSlope; \
        __evenodd_line_xp__ = FIXED_TO_INT(__evenodd_line_xp__); \
        aScanline[__evenodd_line_xp__] ^= __evenodd_line_mask__; \
        __evenodd_line_mask__ <<= 1;

#define EVENODD_LINE_UNROLL_2 aScanline,
aX,
aSlope,
aOffsets   ) 
 

Value:

__evenodd_line_xp__ = aX + aOffsets[2]; \
        aX += aSlope; \
        __evenodd_line_xp__ = FIXED_TO_INT(__evenodd_line_xp__); \
        aScanline[__evenodd_line_xp__] ^= __evenodd_line_mask__; \
        __evenodd_line_mask__ <<= 1;

#define EVENODD_LINE_UNROLL_3 aScanline,
aX,
aSlope,
aOffsets   ) 
 

Value:

__evenodd_line_xp__ = aX + aOffsets[3]; \
        aX += aSlope; \
        __evenodd_line_xp__ = FIXED_TO_INT(__evenodd_line_xp__); \
        aScanline[__evenodd_line_xp__] ^= __evenodd_line_mask__; \
        __evenodd_line_mask__ <<= 1;

#define EVENODD_LINE_UNROLL_4 aScanline,
aX,
aSlope,
aOffsets   ) 
 

Value:

__evenodd_line_xp__ = aX + aOffsets[4]; \
        aX += aSlope; \
        __evenodd_line_xp__ = FIXED_TO_INT(__evenodd_line_xp__); \
        aScanline[__evenodd_line_xp__] ^= __evenodd_line_mask__; \
        __evenodd_line_mask__ <<= 1;

#define EVENODD_LINE_UNROLL_5 aScanline,
aX,
aSlope,
aOffsets   ) 
 

Value:

__evenodd_line_xp__ = aX + aOffsets[5]; \
        aX += aSlope; \
        __evenodd_line_xp__ = FIXED_TO_INT(__evenodd_line_xp__); \
        aScanline[__evenodd_line_xp__] ^= __evenodd_line_mask__; \
        __evenodd_line_mask__ <<= 1;

#define EVENODD_LINE_UNROLL_6 aScanline,
aX,
aSlope,
aOffsets   ) 
 

Value:

__evenodd_line_xp__ = aX + aOffsets[6]; \
        aX += aSlope; \
        __evenodd_line_xp__ = FIXED_TO_INT(__evenodd_line_xp__); \
        aScanline[__evenodd_line_xp__] ^= __evenodd_line_mask__; \
        __evenodd_line_mask__ <<= 1;

#define EVENODD_LINE_UNROLL_7 aScanline,
aX,
aSlope,
aOffsets   ) 
 

Value:

__evenodd_line_xp__ = aX + aOffsets[7]; \
        aX += aSlope; \
        __evenodd_line_xp__ = FIXED_TO_INT(__evenodd_line_xp__); \
        aScanline[__evenodd_line_xp__] ^= __evenodd_line_mask__; \
        __evenodd_line_mask__ <<= 1;

 
#define EVENODD_LINE_UNROLL_INIT  ) 
 

Value:

SUBPIXEL_DATA __evenodd_line_mask__ = 1; \
        int __evenodd_line_xp__;

#define NONZERO_LINE_UNROLL_0 aWindingBuffer,
aX,
aSlope,
aOffsets,
aWinding   ) 
 

Value:

__nonzero_line_xp__ = aX + aOffsets[0]; \
        aX += aSlope; \
        __nonzero_line_xp__ = FIXED_TO_INT(__nonzero_line_xp__); \
        aWindingBuffer[__nonzero_line_xp__].mMask |= __nonzero_line_mask__; \
        aWindingBuffer[__nonzero_line_xp__].mBuffer[0] += aWinding; \
        __nonzero_line_mask__ <<= 1;

#define NONZERO_LINE_UNROLL_1 aWindingBuffer,
aX,
aSlope,
aOffsets,
aWinding   ) 
 

Value:

__nonzero_line_xp__ = aX + aOffsets[1]; \
        aX += aSlope; \
        __nonzero_line_xp__ = FIXED_TO_INT(__nonzero_line_xp__); \
        aWindingBuffer[__nonzero_line_xp__].mMask |= __nonzero_line_mask__; \
        aWindingBuffer[__nonzero_line_xp__].mBuffer[1] += aWinding; \
        __nonzero_line_mask__ <<= 1;

#define NONZERO_LINE_UNROLL_2 aWindingBuffer,
aX,
aSlope,
aOffsets,
aWinding   ) 
 

Value:

__nonzero_line_xp__ = aX + aOffsets[2]; \
        aX += aSlope; \
        __nonzero_line_xp__ = FIXED_TO_INT(__nonzero_line_xp__); \
        aWindingBuffer[__nonzero_line_xp__].mMask |= __nonzero_line_mask__; \
        aWindingBuffer[__nonzero_line_xp__].mBuffer[2] += aWinding; \
        __nonzero_line_mask__ <<= 1;

#define NONZERO_LINE_UNROLL_3 aWindingBuffer,
aX,
aSlope,
aOffsets,
aWinding   ) 
 

Value:

__nonzero_line_xp__ = aX + aOffsets[3]; \
        aX += aSlope; \
        __nonzero_line_xp__ = FIXED_TO_INT(__nonzero_line_xp__); \
        aWindingBuffer[__nonzero_line_xp__].mMask |= __nonzero_line_mask__; \
        aWindingBuffer[__nonzero_line_xp__].mBuffer[3] += aWinding; \
        __nonzero_line_mask__ <<= 1;

#define NONZERO_LINE_UNROLL_4 aWindingBuffer,
aX,
aSlope,
aOffsets,
aWinding   ) 
 

Value:

__nonzero_line_xp__ = aX + aOffsets[4]; \
        aX += aSlope; \
        __nonzero_line_xp__ = FIXED_TO_INT(__nonzero_line_xp__); \
        aWindingBuffer[__nonzero_line_xp__].mMask |= __nonzero_line_mask__; \
        aWindingBuffer[__nonzero_line_xp__].mBuffer[4] += aWinding; \
        __nonzero_line_mask__ <<= 1;

#define NONZERO_LINE_UNROLL_5 aWindingBuffer,
aX,
aSlope,
aOffsets,
aWinding   ) 
 

Value:

__nonzero_line_xp__ = aX + aOffsets[5]; \
        aX += aSlope; \
        __nonzero_line_xp__ = FIXED_TO_INT(__nonzero_line_xp__); \
        aWindingBuffer[__nonzero_line_xp__].mMask |= __nonzero_line_mask__; \
        aWindingBuffer[__nonzero_line_xp__].mBuffer[5] += aWinding; \
        __nonzero_line_mask__ <<= 1;

#define NONZERO_LINE_UNROLL_6 aWindingBuffer,
aX,
aSlope,
aOffsets,
aWinding   ) 
 

Value:

__nonzero_line_xp__ = aX + aOffsets[6]; \
        aX += aSlope; \
        __nonzero_line_xp__ = FIXED_TO_INT(__nonzero_line_xp__); \
        aWindingBuffer[__nonzero_line_xp__].mMask |= __nonzero_line_mask__; \
        aWindingBuffer[__nonzero_line_xp__].mBuffer[6] += aWinding; \
        __nonzero_line_mask__ <<= 1;

#define NONZERO_LINE_UNROLL_7 aWindingBuffer,
aX,
aSlope,
aOffsets,
aWinding   ) 
 

Value:

__nonzero_line_xp__ = aX + aOffsets[7]; \
        aX += aSlope; \
        __nonzero_line_xp__ = FIXED_TO_INT(__nonzero_line_xp__); \
        aWindingBuffer[__nonzero_line_xp__].mMask |= __nonzero_line_mask__; \
        aWindingBuffer[__nonzero_line_xp__].mBuffer[7] += aWinding; \
        __nonzero_line_mask__ <<= 1;

 
#define NONZERO_LINE_UNROLL_INIT  ) 
 

Value:

SUBPIXEL_DATA __nonzero_line_mask__ = 1; \
        int __nonzero_line_xp__;


Generated on Fri Aug 3 00:44:31 2007 for Scanline edge-flag algorithm for antialiasing by  doxygen 1.4.6-NO