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.

128 lines
3.7 KiB

  1. /******************************Module*Header*******************************\
  2. * Module Name: solline.hxx
  3. *
  4. * This contains the structures used in fastline
  5. *
  6. * Created: 16-Aug-1993
  7. * Author: Mark Enstrom Marke
  8. *
  9. * Copyright (c) 1993-1999 Microsoft Corporation
  10. \**************************************************************************/
  11. typedef struct _LINEPARAM {
  12. PUCHAR pjDst;
  13. LONG lDelta;
  14. LONG AdrIncr;
  15. ULONG iSolidColor;
  16. ULONG ulFormat;
  17. LONG x0;
  18. LONG y0;
  19. LONG x1;
  20. LONG y1;
  21. LONG dx;
  22. LONG dy;
  23. LONG d;
  24. LONG incrE;
  25. LONG incrNE;
  26. ULONG ulFlags;
  27. } LINEPARAM,*PLINEPARAM;
  28. typedef struct _DDALINE /* dl */
  29. {
  30. ULONG ulFlags;
  31. POINTL ptlStart;
  32. LONG cPels;
  33. LONG dMajor;
  34. LONG dMinor;
  35. LONG lErrorTerm;
  36. LONG xInc;
  37. } DDALINE,*PDDALINE;
  38. #define FL_SOL_FLIP_D 0x0001L // Diagonal flip
  39. #define FL_SOL_FLIP_V 0x0002L // Vertical flip
  40. #define FL_SOL_FLIP_H 0x0004L // Horizontal flip
  41. #define FL_SOL_FLIP_SLOPE_ONE 0x0008L // Normalized line has exactly slope one
  42. #define FL_SOL_FLIP_MASK (HW_FLIP_D | HW_FLIP_V | HW_FLIP_H)
  43. #define FL_SOL_RECTLCLIP_MASK 0x00000003L // .... .... .... ..11
  44. #define FL_SOL_RECTLCLIP_SHIFT 2
  45. VOID
  46. vSolidLine (
  47. SURFACE*,
  48. PATHOBJ*,
  49. POINTFIX*,
  50. CLIPOBJ*,
  51. ULONG
  52. );
  53. VOID
  54. vDrawLine (
  55. POINTFIX *pptfx0,
  56. POINTFIX *pptfx1,
  57. PUCHAR pjDst,
  58. LONG lDelta,
  59. ULONG iSolidColor,
  60. PRECTL prclClip,
  61. ULONG FormatIndex
  62. );
  63. BOOL bGIQtoIntegerLine(
  64. POINTFIX* pptfxStart,
  65. POINTFIX* pptfxEnd,
  66. PRECTL prclClip,
  67. DDALINE* pDDALine
  68. );
  69. VOID
  70. vVertical8(
  71. ULONG Count,
  72. PUCHAR pjDstTmp,
  73. LONG lDeltaDst,
  74. ULONG iSolidColor
  75. );
  76. VOID
  77. vHorizontal8(
  78. ULONG Count,
  79. PUCHAR pjDstTmp,
  80. ULONG iSolidColor
  81. );
  82. VOID vLine1Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
  83. VOID vLine1Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
  84. VOID vLine1Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
  85. VOID vLine1Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
  86. VOID vLine4Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
  87. VOID vLine4Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
  88. VOID vLine4Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
  89. VOID vLine4Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
  90. extern "C" VOID vLine8Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
  91. extern "C" VOID vLine8Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
  92. extern "C" VOID vLine8Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
  93. extern "C" VOID vLine8Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
  94. VOID vLine16Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
  95. VOID vLine16Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
  96. VOID vLine16Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
  97. VOID vLine16Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
  98. VOID vLine24Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
  99. VOID vLine24Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
  100. VOID vLine24Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
  101. VOID vLine24Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
  102. VOID vLine32Octant07 (PDDALINE,PUCHAR,LONG,ULONG);
  103. VOID vLine32Octant16 (PDDALINE,PUCHAR,LONG,ULONG);
  104. VOID vLine32Octant34 (PDDALINE,PUCHAR,LONG,ULONG);
  105. VOID vLine32Octant25 (PDDALINE,PUCHAR,LONG,ULONG);
  106. VOID vHorizontalLine1(PUCHAR,LONG,LONG,ULONG);
  107. VOID vHorizontalLine4(PUCHAR,LONG,LONG,ULONG);
  108. VOID vHorizontalLine8(PUCHAR,LONG,LONG,ULONG);
  109. VOID vHorizontalLine16(PUCHAR,LONG,LONG,ULONG);
  110. VOID vHorizontalLine24(PUCHAR,LONG,LONG,ULONG);
  111. VOID vHorizontalLine32(PUCHAR,LONG,LONG,ULONG);
  112. typedef VOID (*PFN_OCTANT)(PDDALINE,PUCHAR,LONG,ULONG);
  113. typedef VOID (*PFN_HORZ)(PUCHAR,LONG,LONG,ULONG);