2025-04-27 07:49:33 -04:00

207 lines
6.9 KiB
PHP

;---------------------------Module-Header------------------------------;
; Module Name: stucts.inc
;
; Copyright (c) 1992 Microsoft Corporation
;-----------------------------------------------------------------------;
;-----------------------------------------------------------------------;
; DFBBLT is used to store DFB BLTing info
;-----------------------------------------------------------------------;
DFBBLT STRUC
DstWidth dd 77777777h ;# of words touched by dest rectangle
SrcDelta dd 77777777h ;dist from end of scan to start of next
DstDelta dd 77777777h ;dist from end of scan to start of next
LeftMask dd 77777777h ;dst left mask
NotLeftMask dd 77777777h ;dst left mask
RightMask dd 77777777h ;dst right mask
NotRightMask dd 77777777h ;dst right mask
BurstCountLeft dd 77777777h ;# of scans to burst
AlignShift dd 77777777h ;# of bits to shift left (+) or right
Color dd 77777777h ;# of bits to shift left (+) or right
Tmp1 dd 77777777h ;temp stack variable
Tmp2 dd 77777777h ;temp stack variable
DFBBLT ENDS
;-----------------------------------------------------------------------;
; POINTB is used for points with a range of -128..+127.
;-----------------------------------------------------------------------;
POINTB STRUC
ptb_x DB 0
ptb_y DB 0
POINTB ENDS
;-----------------------------------------------------------------------;
; POINTL is used for points with a range of +/- 2G.
;-----------------------------------------------------------------------;
POINTL STRUC
ptl_x DD 0
ptl_y DD 0
POINTL ENDS
;-----------------------------------------------------------------------;
; SIZEB is used for extents with a range of -128..+127.
;-----------------------------------------------------------------------;
SIZEB STRUC
sizb_cx DB 0
sizb_cy DB 0
SIZEB ENDS
;-----------------------------------------------------------------------;
; SIZEL is used for extents with a range of +/- 2G
;-----------------------------------------------------------------------;
SIZEL STRUC
sizl_cx DD 0
sizl_cy DD 0
SIZEL ENDS
;-----------------------------------------------------------------------;
; Definition of a rectangle
;-----------------------------------------------------------------------;
RECTL struc ; /* rcl */
xLeft dd ?
yTop dd ?
xRight dd ?
yBottom dd ?
RECTL ends
;-----------------------------------------------------------------------;
; Definition of a device surface
;-----------------------------------------------------------------------;
DEVSURF struc ; /* dsurf */
dsurf_ident dd ?
dsurf_flSurf dd ?
dsurf_iColor db ?
dsurf_iFormat db ?
db ?
db ?
dsurf_ppdev dd ?
dsurf_sizlSurf db (size SIZEL) dup (?)
dsurf_lNextScan dd ?
dsurf_lNextPlane dd ?
dsurf_pvScan0 dd ?
dsurf_pvStart dd ?
dsurf_pvConv dd ?
dsurf_pBankSelectInfo dd ?
dsurf_ulBank2RWSkip dd ?
dsurf_pfnBankSwitchCode dd ?
dsurf_vbtBankingType dd ?
dsurf_ulBitmapSize dd ?
dsurf_ulPtrBankScan dd ?
dsurf_rcl1WindowClip db (size RECTL) dup (?)
dsurf_rcl2WindowClip db (2*(size RECTL)) dup (?)
dsurf_ulWindowBank dd ?,?
dsurf_pbiBankInfo dd ?
dsurf_ulBankInfoLength dd ?
dsurf_pbiBankInfo2RW dd ?
dsurf_ulBankInfo2RWLength dd ?
dsurf_pfnBankControl dd ?
dsurf_pfnBankControl2Window dd ?
dsurf_pvBitmapStart dd ?
dsurf_pvBitmapStart2Window dd ?,?
dsurf_pvBankBufferPlane0 dd ?
dsurf_pvBankBufferPlane1 dd ?
dsurf_pvBankBufferPlane2 dd ?
dsurf_pvBankBufferPlane3 dd ?
dsurf_ajBits dd ?
DEVSURF ends
dsurf_rcl2WindowClipS equ (dsurf_rcl2WindowClip)
dsurf_rcl2WindowClipD equ (dsurf_rcl2WindowClip + (size RECTL))
dsurf_pvBitmapStart2WindowS equ (dsurf_pvBitmapStart2Window)
dsurf_pvBitmapStart2WindowD equ (dsurf_pvBitmapStart2Window + dword)
;-----------------------------------------------------------------------;
; Definitions for dsurf_iFormat
;-----------------------------------------------------------------------;
BMF_1BPP equ 1
BMF_4BPP equ 2
BMF_8BPP equ 3
BMF_16BPP equ 4
BMF_24BPP equ 5
BMF_32BPP equ 6
BMF_4RLE equ 8
BMF_8RLE equ 9
BMF_DEVICE equ 0FEh
BMF_PHYSDEVICE equ 0FFh
VGA_TARGET equ 0
DFB_TARGET equ 1
NO_TARGET equ 2
;-----------------------------------------------------------------------;
; Definitions for text output
;-----------------------------------------------------------------------;
GLYPHPOS struc ; /* gp */
gp_hg dd ? ; hglyph (unused by vga)
gp_pgdf dd ? ; glyphdef
gp_x dd ? ; glyph x position
gp_y dd ? ; glyph y position
GLYPHPOS ends
GLYPHDEF struc ; /* gdf */
gdf_pgb dd ? ; points to GLYPHBITS
GLYPHDEF ends
GLYPHBITS struc ; /* gb */
gb_x dd ? ; glyph x offset
gb_y dd ? ; glyph y offset
gb_cx dd ? ; glyph width in pels
gb_cy dd ? ; glyph height in pels
gb_aj db ? ; glyph bit mask
GLYPHBITS ends
;-----------------------------------------------------------------------;
; Information block for RLE blts
;-----------------------------------------------------------------------;
RLEINFO struc
RLE_pjTrg dd ?
RLE_pjSrcBits dd ?
RLE_pjSrcBitsMax dd ?
RLE_prctlClip dd ?
RLE_pulTranslate dd ?
RLE_xBegin dd ?
RLE_lNextScan dd ?
RLE_lNextPlane dd ?
RLE_prctlTrg dd ?
RLE_dwFormat dd ?
Rle_pdsurfTrg dd ?
RLEINFO ends
;**************************************************************************\
; Physical device description block
;**************************************************************************/
;---mirrors driver.h---;
PDEV struc
PDEV_fl dd ?
PDEV_ident dd ?
PDEV_hDriver dd ?
PDEV_hpdevEng dd ?
PDEV_hsurfEng dd ?
PDEV_pdsurf dd ?
PDEV_sizlSurf db (size SIZEL) dup (?)
;---only needs to mirror driver.h to here---;
PDEV ends