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.

114 lines
3.9 KiB

  1. ;---------------------------- Include File Header ---------------------------;
  2. ; Module Name: lines.inc
  3. ;
  4. ; Line drawing constants and structures.
  5. ;
  6. ; NOTE: This file mirrors LINES.H. Changes here must be reflected in
  7. ; the .h file!
  8. ;
  9. ; Copyright (c) 1993-1994 Microsoft Corporation
  10. ;----------------------------------------------------------------------------;
  11. ; We have special strip routines when all strips have at most this many
  12. ; pixels:
  13. MAX_SHORT_STROKE_LENGTH equ 15
  14. ; # of strip drawers in every group:
  15. NUM_STRIP_DRAW_DIRECTIONS equ 4
  16. ; # of strip drawers for doing either solid lines or styled lines:
  17. NUM_STRIP_DRAW_STYLES equ 8
  18. STYLE_MAX_COUNT equ 16
  19. STYLE_MAX_VALUE equ 3fffh
  20. RUN_MAX equ 20
  21. STRIP_MAX equ 100
  22. STYLE_DENSITY equ 3
  23. ; Flip and round flags:
  24. FL_H_ROUND_DOWN equ 00000080h ; Set if x = 1/2 rounds to x = 1
  25. FL_V_ROUND_DOWN equ 00008000h ; Set if y = 1/2 rounds to y = 1
  26. FL_FLIP_D equ 00000005h ; Diagonal flip
  27. FL_FLIP_V equ 00000008h ; Vertical flip
  28. FL_FLIP_SLOPE_ONE equ 00000010h ; If slope is exactly one
  29. FL_FLIP_HALF equ 00000002h ; Half flip
  30. FL_FLIP_H equ 00000200h ; Horizontal (right-to-left) exchange
  31. FL_ROUND_MASK equ 0000001ch ; Rounding is dependent on diagonal,
  32. FL_ROUND_SHIFT equ 2 ; vertical flips and if slope is one
  33. FL_RECTLCLIP_MASK equ 0000000ch ; When we unflip to do clipping, we
  34. FL_RECTLCLIP_SHIFT equ 2 ; only have to look at diagonal and
  35. ; vertical flips
  36. FL_STRIP_MASK equ 00000003h ; Which strip drawer we call is based
  37. FL_STRIP_SHIFT equ 0 ; on if we did diagonal and/or half
  38. ; flips
  39. FL_SIMPLE_CLIP equ 00000020h ; Denotes our clipping complexity
  40. FL_COMPLEX_CLIP equ 00000040h
  41. FL_CLIP equ (FL_SIMPLE_CLIP + FL_COMPLEX_CLIP)
  42. FL_SET equ 00000800h ; If ROP is such that we don't have to
  43. ; read video memory
  44. FL_ARBITRARYSTYLED equ 00000400h ; If the line is styled
  45. FL_STYLED equ (FL_ARBITRARYSTYLED)
  46. FL_STRIP_ARRAY_MASK equ 00000C00h ; Which strip arrays we look up depends
  47. FL_STRIP_ARRAY_SHIFT equ 10 ; on if we're doing style and/or have
  48. ; a 'set' style ROP
  49. ; Simple flag bits in high byte:
  50. FL_DONT_DO_HALF_FLIP equ 00002000h
  51. FL_PHYSICAL_DEVICE equ 00004000h
  52. ; Miscellaneous DDA defines:
  53. F equ 16
  54. FLOG2 equ 4
  55. ;------------------------------------------------------------------------
  56. ; NOTE: The following structures must exactly match those declared in
  57. ; lines.h!
  58. STRIPS struc
  59. ST_cStrips dd ?
  60. ST_flFlips dd ?
  61. ST_ptlStart dd 2 dup(?)
  62. ST_alStrips dd STRIP_MAX dup (?)
  63. STRIPS ends
  64. LINESTATE struc
  65. LS_pspStart dd ?
  66. LS_pspEnd dd ?
  67. LS_psp dd ?
  68. LS_spRemaining dd ?
  69. LS_spTotal dd ?
  70. LS_spTotal2 dd ?
  71. LS_spNext dd ?
  72. LS_spComplex dd ?
  73. LS_aspRtoL dd ?
  74. LS_aspLtoR dd ?
  75. LS_jStyleMask db ?
  76. LS_filler2 db 3 dup (?)
  77. LS_xyDensity dd ?
  78. LS_cStyle dd ?
  79. LS_ulStyleMaskLtoR dd ?
  80. LS_ulStyleMaskRtoL dd ?
  81. LS_jStartMask db ?
  82. LS_filler3 db 3 dup (?)
  83. LINESTATE ends
  84. RUN struc
  85. RUN_iStart dd ?
  86. RUN_iStop dd ?
  87. RUN ends
  88. DEFAULT_DRAW_CMD equ (DRAW_LINE+DRAW+DIR_TYPE_XY+MULTIPLE_PIXELS+WRITE+ \
  89. LAST_PIXEL_OFF)