Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

108 lines
4.6 KiB

;---------------------------Module-Header------------------------------;
; Module Name: display.inc
;
; Copyright (c) 1992 Microsoft Corporation
;-----------------------------------------------------------------------;
NUMBER_PLANES equ 4 ;4 plane format
; The color structure is how this driver stores its physical
; colors in memory. The color consists of four bytes (dword),
; one byte for each of three planes of color, and a fourth
; byte which is a combination of one bit from each plane, plus
; other special information.
;
; C3Bit will have to be expanded as needed for the fourth plane.
phys_color struc
pcol_C0 db ? ;Plane C0
pcol_C1 db ? ;Plane C1
pcol_C2 db ? ;Plane C2
pcol_C3 db ? ;Plane C3/Monochrome/Special information
phys_color ends
; Definitions for the pcol_C3 byte of the physical color
;
; Some of these definitions have limitations as to when they
; are valid. They are as follows:
;
; C0_BIT color device, phys color, solid brushes if SOLID_COLOR
; C1_BIT color device, phys color, solid brushes if SOLID_COLOR
; C2_BIT color device, phys color, solid brushes if SOLID_COLOR
; C3_BIT color device, phys color, solid brushes if SOLID_COLOR
; MONO_BIT mono device, phys color
; ONES_OR_ZEROS color device, phys color, solid brushes if SOLID_COLOR
; GREY_SCALE color device, dithered solid and hatched brushes
; SOLID_BRUSH color device, solid brush qualifier
;
; There may be brushes where the accelerators could have been set,
; but wasn't. That's life.
SPECIAL equ pcol_C3 ;Special information is here
C0_BIT equ 00000001b ; C0 color
C1_BIT equ 00000010b ; C1 color
C2_BIT equ 00000100b ; C2 color
C3_BIT equ 00001000b ; C3 color
MONO_BIT equ 00010000b ; Monochrome bit
ONES_OR_ZEROS equ 00100000b ; Color is really all 1's or all 0's
GREY_SCALE equ 01000000b ; Indicates a real grey scale brush
SOLID_BRUSH equ 10000000b ; Indicates a solid color brush
.errnz (size phys_color) - 4 ;Must be a double word
; The brush structure is OEM dependant, and can contain whatever
; information that is needed to realize the given brush.
;
; For this implementation, the brush will consist of an 8x8
; pattern for each of the planes, and another 8x8 pattern
; for monochrome devices and for monochrome to color conversion
; (for something like a hatched brush, this would contain the
; monochrome mask used to create the brush).
;
; The style will also be stored in the brush and is used to
; catch hollow brushes and exit early.
;
; A flag specific to the EGA is also stored in the brush. This
; flag indicates that the brush is a solid brush and that the
; color for each plane is a solid color (all 1's or all 0's).
; Patterns which are solid in each plane can be handle as a
; special case in Bitblt when the raster op is P or Pn.
SIZE_PATTERN equ 8 ;Size of an 8 by 8 pattern in bytes
oem_brush_def struc
oem_brush_C0 db SIZE_PATTERN dup (?) ;C0 plane
oem_brush_C1 db SIZE_PATTERN dup (?) ;C1 plane
oem_brush_C2 db SIZE_PATTERN dup (?) ;C2 plane
oem_brush_C3 db SIZE_PATTERN dup (?) ;C3 plane
oem_brush_mono db 32 dup (?) ;Mono portion
oem_brush_style dw 0 ;Style of the brush
oem_brush_accel db 0 ;Accellerator for solids
oem_brush_fg db 0 ;current foreground (text) color
oem_brush_bg db 0 ;current background color
oem_brush_rwidth db 0 ;pre expanded width
oem_brush_yshft db 0 ;
oem_brush_spar2 db 0 ;just a fill byte for now
oem_brush_width dd 0 ;Width of brush
oem_brush_height dd 0 ;Height of brush
oem_brush_pmono dd 0 ;pointer to mono pattern
oem_brush_def ends ; (same as "Special" above)
; Brush styles defined by GDI
BS_SOLID equ 0
BS_HOLLOW equ 1
BS_HATCHED equ 2
BS_PATTERN equ 3
BS_MONO_PATTERN equ 4
BS_COLOR_PATTERN equ 5