;*DDK*************************************************************************/
;
; COPYRIGHT (C) Microsoft Corporation, 1989
; COPYRIGHT    Copyright (C) 1995 IBM Corporation
;
;    The following IBM OS/2 WARP source code is provided to you solely for
;    the purpose of assisting you in your development of OS/2 WARP device
;    drivers. You may use this code in accordance with the IBM License
;    Agreement provided in the IBM Device Driver Source Kit for OS/2. This
;    Copyright statement may not be removed.;
;*****************************************************************************/
        page    ,132
;/*****************************************************************************
;*
;* SOURCE FILE NAME = plylocal.inc
;*
;* DESCRIPTIVE NAME = Local variables for polyline routines. 
;*
;*
;* VERSION      V2.0
;*
;* DATE         03/31/87
;*
;* DESCRIPTION  
;*
;* FUNCTIONS    NONE
;*              
;*
;* NOTES        NONE
;*
;* STRUCTURES   NONE
;*
;* EXTERNAL REFERENCES
;*
;*              NONE
;*
;* EXTERNAL FUNCTIONS
;*
;*              NONE
;*
;* CHANGE ACTIVITY =
;*   DATE      FLAG        APAR   CHANGE DESCRIPTION
;*   --------  ----------  -----  --------------------------------------
;*   mm/dd/yy  @Vr.mpppxx  xxxxx  xxxxxxx
;*   03/31/87                     Ken Settle wrote
;*****************************************************************************/

;/*
;** DrawLinesInPath variables
;*/

        localW  returnvalue

;/*
;** PolyLine variables
;*/

        localW  wStyleCounter
        localW  Flags
        localW  Count
        localW  Points
        localW  npddc

;/*
;** common variables
;*/

        localW  wStyleMask                        ; the style mask and its reverse
        localW  npfnUnSetup
        localB  CurLineColor
        localB  CurLineColorStatus
        localB  sd_flags
        localW  DrawModeIndex
        localW  wBitmapROP
        localW  wStyleStepHorz
        localW  wStyleStepVert
        localW  wStyleStepDiag
        localW  wStyleStepHorzTmp
        localW  wStyleStepVertTmp
        localW  offNextLine

;/*
;** workhorse init input
;*/

        localW  cbScanSize
        localW  cbHugeScanWrap
        localW  cySurface                         ; surface height
        localW  cScansPerSegment                  ; zero if non-huge
        localD  pSurfaceStart
        localW  anpfnRunRoutines
        localB  LineStyle                         ; LINETYPE_XXX - 1

;/*
;** workhorse per line input
;*/

        localV  lsg,%(SIZE LINESEGMENT)
        localW  wStyleStepRun
        localW  wStyleStepSide
        localB  bActiveStyleCounter
        localB  bActiveStyleMask

;/*
;** calculated by workhorse
;*/

        localB  fbControl
FBC_HWLINE      equ     1

        localW  yA
        localW  cSideSteps                        ; not counting the last one!
        localW  cA                                ; undefined if cSideSteps is zero
        localW  cB
        localW  cm
        localW  npfnRunRoutine
        localW  npfnMixTheBits                    ; called by the RunRoutine
        localW  iWhichDDA
        localW  wError
        localW  wFracS
        localW  wRotBitMask                       ; rotating-bit mask, current bit
        localW  cbScanAddressDelta                ; (+/-) cbScanSize  (+ 1 if diagonal)
        localW  cbSideStepAddressDelta
        localW  cbHugeScanDelta                   ; (+/-) cbHugeScanWrap
        localW  selHugeDelta                      ; (+/-) DOSHUGEINCR
        localW  cScansLeftInSeg                   ; (used only for huge surfaces)
        localD  pSurfaceAddress

;/*
;** 8514 line algorithm values
;*/

        localW  usX0
        localD  ulK1
        localD  ulK2
        localD  ulET

bRotBitMask     equ     byte ptr wRotBitMask       ; rotating-bit mask, current bit


DEBUG   equ     1

publab  macro   foo
ifdef DEBUG
        public  foo                                ;; generates debugging labels
ifndef  foo
foo:
endif
endif
        endm
