page ,132 ;-----------------------------Module-Header-----------------------------; ; Module Name: POINTER.INC ; ; This file contains definitions relating to the pointer shape. ; ; Copyright (c) 1992 Microsoft Corporation ; ; Exported Functions: none ; ; Public Functions: none ; ; Public Data: PTR_ROUND_RIGHT ; PTR_ROUND_LEFT ; General Description: ; ; Constants are defined for the pointer drawing routine describing ; the size of the poinetr shape. Some of these constants are also ; required for memory allocation in EGA/VGA VRAM. ; ; Restrictions: ; ;-----------------------------------------------------------------------; public PTR_ROUND_RIGHT ;Pointer exclusion needs these public PTR_ROUND_LEFT public PTR_WIDTH_BITS public PTR_HEIGHT ;-----------------------------------------------------------------------; ; The pointer parameters are the size of the pointer as received from ; DeviceSetCursor. ;-----------------------------------------------------------------------; PTR_HEIGHT equ 32 ;Height of pointer in scanlines PTR_WIDTH equ 4 ;Width in bytes of pointer PTR_WIDTH_BITS equ PTR_WIDTH*8 ;Width in bits of pointer ;-----------------------------------------------------------------------; ; The work width/height is the size of a pointer as manipulated by ; the pointer drawing code. ;-----------------------------------------------------------------------; WORK_WIDTH equ PTR_WIDTH+1 ;Width of mask, work area uWORK_HEIGHT equ PTR_HEIGHT+0 ;Height of mask, work area MASK_LENGTH equ WORK_WIDTH*WORK_HEIGHT ;#bytes in mask, work area CLR_MASK_LENGTH equ WORK_WIDTH*WORK_HEIGHT*BITS_PEL ;#bytes in color mask .errnz BITS_PEL-4 ;-----------------------------------------------------------------------; ; The save area parameters control the size of the buffer used for ; saveing the bits underneath the pointer image. It should be a ; power of two to allow for easy wrap calculations. ;-----------------------------------------------------------------------; SAVE_BUFFER_WIDTH equ 8 ;Width of the save area SAVE_BUFFER_HEIGHT equ 32 ;Height of the save area .errnz PTR_WIDTH GT SAVE_BUFFER_WIDTH .errnz PTR_HEIGHT GT SAVE_BUFFER_HEIGHT ;-----------------------------------------------------------------------; ; The following values allow us to set rounding for cursor exclusion. ; These values are applied as an AND mask (for rounding left) and as ; an OR mask (for rounding right). ;-----------------------------------------------------------------------; ROUNDING_SIZE equ 8 ;Round to byte boundaries .errnz ROUNDING_SIZE and 111b ;Must be at least byte boundary PTR_ROUND_RIGHT equ ROUNDING_SIZE-1 PTR_ROUND_LEFT equ -ROUNDING_SIZE