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.
128 lines
3.7 KiB
128 lines
3.7 KiB
|
|
/******************************Module*Header*******************************\
|
|
* Module Name: solline.hxx
|
|
*
|
|
* This contains the structures used in fastline
|
|
*
|
|
* Created: 16-Aug-1993
|
|
* Author: Mark Enstrom Marke
|
|
*
|
|
* Copyright (c) 1993-1999 Microsoft Corporation
|
|
\**************************************************************************/
|
|
|
|
|
|
typedef struct _LINEPARAM {
|
|
PUCHAR pjDst;
|
|
LONG lDelta;
|
|
LONG AdrIncr;
|
|
ULONG iSolidColor;
|
|
ULONG ulFormat;
|
|
LONG x0;
|
|
LONG y0;
|
|
LONG x1;
|
|
LONG y1;
|
|
LONG dx;
|
|
LONG dy;
|
|
LONG d;
|
|
LONG incrE;
|
|
LONG incrNE;
|
|
ULONG ulFlags;
|
|
} LINEPARAM,*PLINEPARAM;
|
|
|
|
typedef struct _DDALINE /* dl */
|
|
{
|
|
ULONG ulFlags;
|
|
POINTL ptlStart;
|
|
LONG cPels;
|
|
LONG dMajor;
|
|
LONG dMinor;
|
|
LONG lErrorTerm;
|
|
LONG xInc;
|
|
} DDALINE,*PDDALINE;
|
|
|
|
#define FL_SOL_FLIP_D 0x0001L // Diagonal flip
|
|
#define FL_SOL_FLIP_V 0x0002L // Vertical flip
|
|
#define FL_SOL_FLIP_H 0x0004L // Horizontal flip
|
|
#define FL_SOL_FLIP_SLOPE_ONE 0x0008L // Normalized line has exactly slope one
|
|
#define FL_SOL_FLIP_MASK (HW_FLIP_D | HW_FLIP_V | HW_FLIP_H)
|
|
|
|
#define FL_SOL_RECTLCLIP_MASK 0x00000003L // .... .... .... ..11
|
|
#define FL_SOL_RECTLCLIP_SHIFT 2
|
|
|
|
VOID
|
|
vSolidLine (
|
|
SURFACE*,
|
|
PATHOBJ*,
|
|
POINTFIX*,
|
|
CLIPOBJ*,
|
|
ULONG
|
|
);
|
|
|
|
VOID
|
|
vDrawLine (
|
|
POINTFIX *pptfx0,
|
|
POINTFIX *pptfx1,
|
|
PUCHAR pjDst,
|
|
LONG lDelta,
|
|
ULONG iSolidColor,
|
|
PRECTL prclClip,
|
|
ULONG FormatIndex
|
|
);
|
|
|
|
BOOL bGIQtoIntegerLine(
|
|
POINTFIX* pptfxStart,
|
|
POINTFIX* pptfxEnd,
|
|
PRECTL prclClip,
|
|
DDALINE* pDDALine
|
|
);
|
|
|
|
VOID
|
|
vVertical8(
|
|
ULONG Count,
|
|
PUCHAR pjDstTmp,
|
|
LONG lDeltaDst,
|
|
ULONG iSolidColor
|
|
);
|
|
|
|
VOID
|
|
vHorizontal8(
|
|
ULONG Count,
|
|
PUCHAR pjDstTmp,
|
|
ULONG iSolidColor
|
|
);
|
|
|
|
|
|
VOID vLine1Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine1Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine1Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine1Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine4Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine4Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine4Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine4Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
extern "C" VOID vLine8Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
extern "C" VOID vLine8Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
extern "C" VOID vLine8Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
extern "C" VOID vLine8Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine16Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine16Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine16Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine16Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine24Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine24Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine24Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine24Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine32Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine32Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine32Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
VOID vLine32Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
|
|
|
|
VOID vHorizontalLine1(PUCHAR,LONG,LONG,ULONG);
|
|
VOID vHorizontalLine4(PUCHAR,LONG,LONG,ULONG);
|
|
VOID vHorizontalLine8(PUCHAR,LONG,LONG,ULONG);
|
|
VOID vHorizontalLine16(PUCHAR,LONG,LONG,ULONG);
|
|
VOID vHorizontalLine24(PUCHAR,LONG,LONG,ULONG);
|
|
VOID vHorizontalLine32(PUCHAR,LONG,LONG,ULONG);
|
|
|
|
typedef VOID (*PFN_OCTANT)(PDDALINE,PUCHAR,LONG,ULONG);
|
|
typedef VOID (*PFN_HORZ)(PUCHAR,LONG,LONG,ULONG);
|