Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/**************************************************************************\
* * Copyright (c) 1999-2000 Microsoft Corporation * * Module Name: * * AARasterizer.hpp * * Abstract: * * GpRasterizer class definition (and supporting classes) * * Created: * * 04/12/99 AMatos * \**************************************************************************/
#ifndef _AARASTERIZER_HPP
#define _AARASTERIZER_HPP
// It's possible to have higher 'X' resolution antialiasing than 'Y', with
// only a slight decrease in performance:
#define AA_X_WIDTH 8
#define AA_X_MASK 7
#define AA_X_HALF 4
#define AA_X_SHIFT 3
#define AA_Y_HEIGHT 4
#define AA_Y_MASK 3
#define AA_Y_HALF 2
#define AA_Y_SHIFT 2
// Calculate the new color channel value according to the coverage:
//
// round((c * multiplier) / 2^(shift))
#define MULTIPLY_COVERAGE(c, multiplier, shift) \
static_cast<UCHAR>((static_cast<UINT>(c) * (multiplier) \ + (1 << ((shift) - 1))) >> (shift))
// SWAP macro:
#define SWAP(temp, a, b) { temp = a; a = b; b = temp; }
enum PathEnumerateTermination { PathEnumerateContinue, // more to come in this subpath
PathEnumerateEndSubpath, // end this subpath.
PathEnumerateCloseSubpath // end this subpath with a close figure.
};
typedef BOOL (*FIXEDPOINTPATHENUMERATEFUNCTION)( VOID *, POINT *, INT, PathEnumerateTermination );
enum PathEnumerateType { PathEnumerateTypeStroke, PathEnumerateTypeFill, PathEnumerateTypeFlatten };
BOOL FixedPointPathEnumerate( const DpPath *path, const GpMatrix *matrix, const RECT *clipRect, PathEnumerateType enumType, FIXEDPOINTPATHENUMERATEFUNCTION enumerateFunction, VOID *enumerateContext );
GpStatus RasterizePath( const DpPath *path, GpMatrix *worldTransform, GpFillMode fillMode, BOOL antiAlias, BOOL nominalWideLine, DpOutputSpan *output, DpClipRegion *clipper, const GpRect *drawBounds );
#endif // _AARASTERIZER_HPP
|