|
|
1.1 ! root 1: ;---------------------------- Include File Header ---------------------------; ! 2: ; 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: ; See lines.h for a description of most defines. ! 10: ; ! 11: ;----------------------------------------------------------------------------; ! 12: ! 13: STYLE_MAX_COUNT equ 16 ! 14: STYLE_MAX_VALUE equ 3fffh ! 15: RUN_MAX equ 20 ! 16: STRIP_MAX equ 100 ! 17: STYLE_DENSITY equ 3 ! 18: ! 19: ; For the ROP table: ! 20: ! 21: MIX_XOR_OFFSET equ 8 ! 22: ! 23: AND_ZERO equ 0 ! 24: AND_PEN equ 1 ! 25: AND_NOTPEN equ 2 ! 26: AND_ONE equ 3 ! 27: ! 28: XOR_ZERO equ (AND_ZERO shl MIX_XOR_OFFSET) ! 29: XOR_PEN equ (AND_PEN shl MIX_XOR_OFFSET) ! 30: XOR_NOTPEN equ (AND_NOTPEN shl MIX_XOR_OFFSET) ! 31: XOR_ONE equ (AND_ONE shl MIX_XOR_OFFSET) ! 32: ! 33: ; ! 34: ; Flip and round flags: ! 35: ; ! 36: ! 37: FL_H_ROUND_DOWN equ 00000080h ; Set if x = 1/2 rounds to x = 1 ! 38: FL_V_ROUND_DOWN equ 00008000h ; Set if y = 1/2 rounds to y = 1 ! 39: ! 40: FL_FLIP_D equ 00000005h ; Diagonal flip ! 41: FL_FLIP_V equ 00000008h ; Vertical flip ! 42: FL_FLIP_SLOPE_ONE equ 00000010h ; If slope is exactly one ! 43: FL_FLIP_HALF equ 00000002h ; Half flip ! 44: FL_FLIP_H equ 00000200h ; Horizontal (right-to-left) exchange ! 45: ! 46: FL_ROUND_MASK equ 0000001ch ; Rounding is dependent on diagonal, ! 47: FL_ROUND_SHIFT equ 2 ; vertical flips and if slope is one ! 48: ! 49: FL_RECTLCLIP_MASK equ 0000000ch ; When we unflip to do clipping, we ! 50: FL_RECTLCLIP_SHIFT equ 2 ; only have to look at diagonal and ! 51: ; vertical flips ! 52: ! 53: FL_STRIP_MASK equ 00000003h ; Which strip drawer we call is based ! 54: FL_STRIP_SHIFT equ 0 ; on if we did diagonal and/or half ! 55: ; flips ! 56: ! 57: FL_SIMPLE_CLIP equ 00000020h ; Denotes our clipping complexity ! 58: FL_COMPLEX_CLIP equ 00000040h ! 59: FL_CLIP equ (FL_SIMPLE_CLIP + FL_COMPLEX_CLIP) ! 60: ! 61: FL_SET equ 00000800h ; If ROP is such that we don't have to ! 62: ; read video memory ! 63: FL_ARBITRARYSTYLED equ 00000400h ; If the line is styled ! 64: FL_STYLED equ (FL_ARBITRARYSTYLED) ! 65: ! 66: FL_STRIP_ARRAY_MASK equ 00000C00h ; Which strip arrays we look up depends ! 67: FL_STRIP_ARRAY_SHIFT equ 10 ; on if we're doing style and/or have ! 68: ; a 'set' style ROP ! 69: ! 70: ; Simple flag bits in high byte: ! 71: ! 72: FL_DONT_DO_HALF_FLIP equ 00002000h ! 73: ! 74: ; Miscellaneous DDA defines: ! 75: ! 76: F equ 16 ! 77: FLOG2 equ 4 ! 78: ! 79: STRIPS struc ! 80: ! 81: ; Updated by strip drawers: ! 82: ! 83: ST_pjScreen dd ? ! 84: ST_bIsGap dd ? ! 85: ! 86: ST_psp dd ? ! 87: ST_spRemaining dd ? ! 88: ! 89: ; Not modified by strip drawers: ! 90: ! 91: ST_lNextScan dd ? ! 92: ST_plStripEnd dd ? ; usually won't be valid ! 93: ST_flFlips dd ? ! 94: ST_pspStart dd ? ! 95: ST_pspEnd dd ? ! 96: ST_xyDensity dd ? ! 97: ST_chAndXor dd ? ! 98: ! 99: ; We leave room for a couple of extra dwords at the end of the strips ! 100: ; array that can be used by the strip drawers: ! 101: ! 102: ST_alStrips dd (STRIP_MAX + 2) dup (?) ! 103: STRIPS ends ! 104: ! 105: LINESTATE struc ! 106: LS_chAndXor dd ? ! 107: LS_spTotal dd ? ! 108: LS_spTotal2 dd ? ! 109: LS_spNext dd ? ! 110: LS_spComplex dd ? ! 111: ! 112: LS_aspRtoL dd ? ! 113: LS_aspLtoR dd ? ! 114: ! 115: LS_xyDensity dd ? ! 116: LS_cStyle dd ? ! 117: ! 118: LS_ulStyleMaskLtoR dd ? ! 119: LS_ulStyleMaskRtoL dd ? ! 120: ! 121: LS_bStartIsGap db ? ! 122: LS_filler3 db 3 dup (?) ! 123: LINESTATE ends ! 124: ! 125: ; ! 126: ; This RUN structure must match that in winddi.h! ! 127: ; ! 128: ! 129: RUN struc ! 130: RUN_iStart dd ? ! 131: RUN_iStop dd ? ! 132: RUN ends
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.