Annotation of ntddk/src/video/displays/vga256/i386/lines.inc, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.