mirror of https://github.com/lianthony/NT4.0
659 lines
24 KiB
659 lines
24 KiB
/*[
|
|
* Product: SoftPC-AT Revision 3.0
|
|
*
|
|
* Name: host_msw.h
|
|
*
|
|
* Derived From: Alpha MS-Windows Driver by Ross Beresford
|
|
*
|
|
* Author: Rob Tizzard
|
|
*
|
|
* Created On: 1st November 1990
|
|
*
|
|
* Sccs ID: @(#)host_msw.h 1.43 07/08/94
|
|
*
|
|
* Purpose: All host dependent definitions for SoftPC MicroSoft
|
|
* Windows 3.0 driver.
|
|
*
|
|
* (c)Copyright Insignia Solutions Ltd., 1990. All rights reserved.
|
|
*
|
|
]*/
|
|
|
|
#if defined(MSWDVR) && defined(XWINDOW)
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* X include files.
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#include <X11/X.h>
|
|
#include <X11/Xlib.h>
|
|
#include <X11/Xresource.h>
|
|
#include <X11/Xutil.h>
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* GDIINFO data structure
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#define VERSION 0x0300 /* Windows version 3.0 */
|
|
#define TECHNOLOGY DT_RASDISPLAY /* Raster Display */
|
|
#define BITSPIXEL 4 /* Bits per pixel for display */
|
|
#define PLANES 1 /* Number of planes for display */
|
|
#define NUMCOLOURS 16 /* Number of static colours in display table */
|
|
#define NUMFONTS 0 /* Number of driver fonts */
|
|
|
|
/*
|
|
* Basic dpLines value
|
|
*/
|
|
#ifdef SWIN_WIDE_LINES
|
|
#define LINES (LC_POLYLINE|LC_WIDE|LC_STYLED|LC_WIDESTYLED|LC_INTERIORS)
|
|
#else
|
|
#define LINES (LC_POLYLINE|LC_STYLED|LC_INTERIORS)
|
|
#endif
|
|
|
|
#ifdef SWIN_GRAPHICS_PRIMS /* { */
|
|
/*
|
|
* Basic dpCurves value
|
|
*/
|
|
#ifdef SWIN_WIDE_LINES
|
|
#define CURVES (CC_CIRCLES|CC_PIE|CC_CHORD|CC_ELLIPSES|CC_WIDE|CC_STYLED|CC_WIDESTYLED|CC_INTERIORS)
|
|
#else
|
|
#define CURVES (CC_CIRCLES|CC_PIE|CC_CHORD|CC_ELLIPSES|CC_STYLED|CC_INTERIORS)
|
|
#endif
|
|
|
|
/*
|
|
* Basic dpPolygonals value
|
|
*/
|
|
#ifdef SWIN_WIDE_LINES
|
|
#define POLYGONALS (PC_ALTPOLYGON|PC_RECTANGLE|PC_WINDPOLYGON|PC_SCANLINE|PC_WIDE|PC_STYLED|PC_WIDESTYLED|PC_INTERIORS)
|
|
#else
|
|
#define POLYGONALS (PC_ALTPOLYGON|PC_RECTANGLE|PC_WINDPOLYGON|PC_SCANLINE|PC_STYLED|PC_INTERIORS)
|
|
#endif
|
|
|
|
#else /* SWIN_GRAPHICS_PRIMS } { */
|
|
|
|
/*
|
|
* Basic dpCurves value
|
|
*/
|
|
#ifdef SWIN_WIDE_LINES
|
|
#define CURVES (CC_ELLIPSES|CC_WIDE|CC_STYLED|CC_WIDESTYLED|CC_INTERIORS)
|
|
#else
|
|
#define CURVES (CC_ELLIPSES|CC_STYLED|CC_INTERIORS)
|
|
#endif
|
|
|
|
/*
|
|
* Basic dpPolygonals value
|
|
*/
|
|
#ifdef SWIN_WIDE_LINES
|
|
#define POLYGONALS (PC_RECTANGLE|PC_SCANLINE|PC_WIDE|PC_STYLED|PC_WIDESTYLED|PC_INTERIORS)
|
|
#else
|
|
#define POLYGONALS (PC_RECTANGLE|PC_SCANLINE|PC_STYLED|PC_INTERIORS)
|
|
#endif
|
|
|
|
#endif /* SWIN_GRAPHICS_PRIMS } */
|
|
|
|
#ifdef SWIN_BOLD_TEXT_OPTS /* { */
|
|
#define TEXTUAL (TC_CP_STROKE|TC_RA_ABLE|TC_EA_DOUBLE)
|
|
#else
|
|
#define TEXTUAL (TC_CP_STROKE|TC_RA_ABLE)
|
|
#endif /* SWIN_BOLD_TEXT_OPTS } */
|
|
|
|
#define CLIP CP_RECTANGLE /* Rectangle */
|
|
|
|
#ifdef SWIN_DEVBMP
|
|
#define RASTER (RC_BITBLT|RC_BITMAP64|RC_GDI20_OUTPUT|RC_SAVEBITMAP|RC_DI_BITMAP|RC_PALETTE|RC_DIBTODEV|RC_STRETCHBLT|RC_DEVBITS)
|
|
#else
|
|
#define RASTER (RC_BITBLT|RC_BITMAP64|RC_GDI20_OUTPUT|RC_SAVEBITMAP|RC_DI_BITMAP|RC_PALETTE|RC_DIBTODEV)
|
|
#endif /* SWIN_DEVBMP */
|
|
|
|
#define DCMANAGE DC_IGNOREDFNP /* Display */
|
|
#define PALCOLOURS 0 /* Colours available in palette */
|
|
#define PALCOLRESERVED 0 /* Reserved colours for brushes & pens */
|
|
#define PALCOLOURRES 24 /* DAC RGB resolution */
|
|
|
|
/* X & Y dots per inch */
|
|
|
|
#define XDOTSPERINCH ((FLOAT) mswdvr.displayWidth / (FLOAT) mswdvr.displayWidthMM * 25.4)
|
|
#define YDOTSPERINCH ((FLOAT) mswdvr.displayHeight / (FLOAT) mswdvr.displayHeightMM * 25.4)
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* Image Data format
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#define FORMAT ZPixmap
|
|
|
|
#define HOSTBYTEORDER MSBFirst
|
|
#define HOSTBITORDER MSBFirst
|
|
|
|
#define MBYTEORDER MSBFirst
|
|
#define MBITORDER MSBFirst
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* Size of physical pen & brush data structures written to Intel memory
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#define PPEN_SIZE (sizeof(PEN_MAPPING))
|
|
#define PBRUSH_SIZE (sizeof(BRUSH_MAPPING))
|
|
|
|
#ifdef SWIN_DEVBMP
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* Size of device bitmap entry tables
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
/*
|
|
* number of entries in table
|
|
*/
|
|
#define PPBITMAP_MAX 512
|
|
/*
|
|
* number of bytes to pass back to Intel (GDI) to describe
|
|
* a device bitmap data structure (inc. PBITMAP structure)
|
|
*/
|
|
#define PPBITMAP_SIZE (32 + sizeof(word))
|
|
#define BITMAP_FAILURE 0xffff /* indicates cannot realize device bitmap */
|
|
#endif /* SWIN_DEVBMP */
|
|
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* Size of brush monochrome & colour tile data in bytes
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#define BRUSH_MONO_SIZE 8
|
|
#define BRUSH_COLOUR_SIZE 64
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* Number of scratch areas.
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#define MAX_SCRATCH_AREAS 2
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* MS-Windows Driver Types
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
/* Pixel, RGB & shift unit */
|
|
|
|
typedef double_word MSWPIXEL;
|
|
typedef double_word MSWCOLOUR;
|
|
typedef half_word SHIFTUNIT;
|
|
|
|
/* type of host pixel values, never seen by Windows */
|
|
|
|
typedef unsigned long HOSTPIXEL;
|
|
|
|
/* Colourmap & translate table data structure */
|
|
|
|
typedef struct {
|
|
HOSTPIXEL pixel; /* host pixel value */
|
|
MSWCOLOUR rgb; /* RGB value */
|
|
} MSWCOLOURMAP;
|
|
|
|
#ifdef SWIN_GRAPHICS_PRIMS
|
|
/*
|
|
* PolyPoints data structure and used in general for windows points
|
|
* describing graphics operations
|
|
*/
|
|
typedef struct {
|
|
SHORT x;
|
|
SHORT y;
|
|
} WinPoint;
|
|
|
|
#define MAXPOINTS 512
|
|
|
|
#endif /* SWIN_GRAPHICS_PRIMS */
|
|
|
|
/* Drawing Rectangle */
|
|
|
|
typedef XRectangle Rectangle;
|
|
|
|
/* Window attributes */
|
|
|
|
typedef XWindowAttributes WindowAttributes;
|
|
|
|
/* Structure used in mapping MSW bitmaps to X pixmaps */
|
|
|
|
typedef struct {
|
|
ULONG type; /* mapping type */
|
|
BOOL translate; /* translate flag */
|
|
Drawable mapping; /* mapped pixmap */
|
|
LONG x; /* x origin of bitmap */
|
|
LONG y; /* y origin of bitmap */
|
|
word width; /* width of bitmap */
|
|
word height; /* height of bitmap */
|
|
word bytes_per_line; /* width in bytes */
|
|
half_word planes; /* number of bitmap planes */
|
|
half_word bitsPixel; /* bits per pixel */
|
|
double_word bits; /* Segment and offset of bitmap */
|
|
half_word *data; /* bitmap data address */
|
|
word segmentIndex; /* index to next Huge bitmap segment */
|
|
word scanSegment; /* scan lines per segment */
|
|
word fillBytes; /* unused bytes within a segment */
|
|
HOSTPIXEL foreground; /* pixel corresponding to 1 */
|
|
HOSTPIXEL background; /* pixel corresponding to 0 */
|
|
LONG active_x; /* active area origin x */
|
|
LONG active_y; /* active area origin y */
|
|
ULONG active_width; /* active area width */
|
|
ULONG active_height; /* active area height */
|
|
IU32 flags; /* creation flags */
|
|
#ifdef SWIN_DEVBMP
|
|
BOOL deviceBitmap; /* flag to test whether device bitmap */
|
|
#endif
|
|
} BITMAP_MAPPING;
|
|
|
|
/* Structure used in mapping MSW brushes to X GCs */
|
|
|
|
#ifdef SWIN_MEMTOMEM_ROPS
|
|
typedef struct
|
|
{
|
|
IU16 left;
|
|
IU16 top;
|
|
IU16 right;
|
|
IU16 bottom;
|
|
} Rect;
|
|
#endif /* SWIN_MEMTOMEM_ROPS */
|
|
|
|
/*
|
|
* The following structure is kept in GDI and must be kept AS SMALL AS POSSIBLE.
|
|
* This is the justification for use of the bit-fields (against Insignia
|
|
* coding standards) & why some of the fields appear in other than the
|
|
* obvious order - so that we can try to natural size align stuff (so that
|
|
* there are no padding bytes added by the compiler). Note that more fields
|
|
* could be moved into the pen/brush union but it doesn't end up saving
|
|
* space - and could actually make it worse.
|
|
*
|
|
* NOTE - the handle field must be first - code in X_mswobj.c assumes that
|
|
* it is the first item found in Intel memory & the pen/brush cache
|
|
* code also depends on it.
|
|
*/
|
|
typedef struct {
|
|
word handle; /* Unique brush identifier */
|
|
word line_width; /* Pen line width */
|
|
|
|
unsigned int inuse:1; /* Is brush/pen in use */
|
|
unsigned int tiled:1; /* Brush tiled flag */
|
|
unsigned int width:4; /* Brush width */
|
|
unsigned int height:4; /* Brush height */
|
|
unsigned int monoPresent:1; /* Mono bitmap present ? */
|
|
unsigned int colourPresent:1; /* Colour bitmap present ? */
|
|
unsigned int objectGCHandle:4; /* Entry within GC Table */
|
|
unsigned int penXbackground:1; /* pen background is X pixel! */
|
|
|
|
#ifdef SWIN_INVERTBRUSH_OPT
|
|
unsigned int invertedTile:1; /* brush tile is inverted */
|
|
#endif /* SWIN_INVERTBRUSH_OPT */
|
|
|
|
int function; /* GC function */
|
|
|
|
union {
|
|
struct { /* BRUSHES only */
|
|
unsigned int use_clip_mask:1; /* clip mask None or !None */
|
|
#ifdef SWIN_MEMTOMEM_ROPS
|
|
unsigned int patPresent:1; /* pattern data present */
|
|
unsigned int bmpBits:6; /* pattern from mono bitmap */
|
|
unsigned int xRotation:4; /* x pattern rotation */
|
|
unsigned int yRotation:4; /* y pattern rotation */
|
|
#endif /* SWIN_MEMTOMEM_ROPS */
|
|
} brush;
|
|
struct { /* PENS only */
|
|
int line_style; /* GC line style */
|
|
} pen;
|
|
} obj;
|
|
|
|
MSWCOLOUR foreground; /* Foreground colour */
|
|
MSWCOLOUR background; /* Backgound colour */
|
|
|
|
HOSTPIXEL fgPixel; /* Foreground pixel value */
|
|
HOSTPIXEL bgPixel; /* Background pixel value */
|
|
|
|
half_word monoBitmap[BRUSH_MONO_SIZE]; /* Data for mono brush */
|
|
half_word colourBitmap[BRUSH_COLOUR_SIZE];/* Data for colour brush */
|
|
|
|
GC gc; /* X GC to fill using brush */
|
|
Pixmap mapping; /* Brush tile data mapping */
|
|
Rectangle clip_area; /* Area used when clipping */
|
|
|
|
#ifdef SWIN_MEMTOMEM_ROPS
|
|
IU16 originX; /* Brush tile origin x coord */
|
|
IU16 originY; /* Brush tile origin y coord */
|
|
IS8 rop2; /* Tiling rop */
|
|
#endif /* SWIN_MEMTOMEM_ROPS */
|
|
|
|
IU8 style; /* Brush style */
|
|
} BRUSH_MAPPING;
|
|
|
|
/*
|
|
* Define structure that holds the stuff that used to be in BRUSH_MAPPING but is
|
|
* taken out here to save space; this structure is cached in host memory and the
|
|
* non-BRUSH_MAPPING members are recalculated when required.
|
|
*
|
|
* NOTE - gdi field must be first in the structure that follows; the
|
|
* GET_BRUSH_PATTERN macro depends on it.
|
|
*/
|
|
typedef struct {
|
|
BRUSH_MAPPING gdi; /* copy of GDI bit of brush */
|
|
XGCValues gcValues; /* X GC values for display */
|
|
unsigned long valueMask; /* X GC value mask */
|
|
IU8 patData[BRUSH_COLOUR_SIZE]; /* tiled brush pattern */
|
|
} X_BRUSH_MAPPING;
|
|
|
|
#ifdef SWIN_MEMTOMEM_ROPS
|
|
#define GET_BRUSH_PATTERN() (((X_BRUSH_MAPPING *)bp)->patData)
|
|
#endif /* SWIN_MEMTOMEM_ROPS */
|
|
|
|
/*
|
|
* Pens & brushes are all the same under X.
|
|
*/
|
|
#define PEN_MAPPING BRUSH_MAPPING
|
|
#define X_PEN_MAPPING X_BRUSH_MAPPING
|
|
|
|
/* Main windows driver data structure */
|
|
|
|
typedef struct {
|
|
Display *display; /* X display */
|
|
int screen; /* X screen */
|
|
IS32 intel_version; /* version of Intel driver */
|
|
Window parent; /* X Parent Window ID */
|
|
Window window; /* X Output Window ID */
|
|
Colormap colourmap; /* X colourmap */
|
|
WindowAttributes windowAttr; /* X Output Window attributes */
|
|
HOSTPIXEL *planeMasks; /* X pixel plane masks */
|
|
HOSTPIXEL mergeMask; /* X merged pixel plane masks */
|
|
HOSTPIXEL whitePixelValue; /* X White pixel values */
|
|
HOSTPIXEL blackPixelValue; /* X Black pixel value */
|
|
ULONG displayWidth; /* X Display width in pixels */
|
|
ULONG displayHeight; /* X Display height in pixels */
|
|
ULONG displayWidthMM; /* X Display width in MM */
|
|
ULONG displayHeightMM; /* X Display height in MM */
|
|
ULONG windowState; /* Windows driver state */
|
|
half_word oldCrtModeByte; /* Saved CRT Mode Byte */
|
|
BOOL crtModeByteSaved; /* CRT Mode Byte saved flag */
|
|
BOOL sizeInitialised; /* Windows size initialised flag */
|
|
BOOL envDefinedSize; /* Windows size defined flag */
|
|
BOOL winPtr; /* Windows pointer active flag */
|
|
BOOL cursorDisplayed; /* Cursor displayed flag */
|
|
Cursor cursor; /* X ID of current cursor */
|
|
int cursorCallbackActive; /* warp suppression */
|
|
int cursorLastLocX; /* Last x position of cursor */
|
|
int cursorLastLocY; /* Last y position of cursor */
|
|
int cursorXLocX; /* x position of X pointer */
|
|
int cursorXLocY; /* y position of X pointer */
|
|
BOOL cursorXOutside; /* X pointer outside window */
|
|
word version; /* Windows version */
|
|
word nextSegment; /* Windows next segment increment */
|
|
word flags; /* Windows flags */
|
|
word deviceColourMatchSegment; /* Segment of Windows function DeviceColourMatch */
|
|
word deviceColourMatchOffset; /* Offset of Windows function DeviceColourMatch */
|
|
word bitsPixel; /* Windows bits per pixel */
|
|
word numColours; /* Windows colours */
|
|
word numPens; /* Windows pens */
|
|
word palColours; /* Windows palette colours */
|
|
word palColReserved; /* Windows reserved palette colours */
|
|
word palColourRes; /* Windows palette colours */
|
|
UTINY *colourToMono; /* Windows colour to mono conversion table */
|
|
MSWPIXEL *colourTrans; /* Windows colour translation table */
|
|
MSWPIXEL *invColourTrans; /* Windows inverse colour translation table */
|
|
BOOL paletteModified; /* Windows palette modified flag */
|
|
BOOL paletteEnabled; /* Windows palette enabled flag */
|
|
BITMAP_MAPPING saveWindow; /* Windows background output Window */
|
|
UTINY *scratchMemory; /* Windows driver global scratch area */
|
|
ULONG scratchMemorySize; /* Windows driver global scratch area size */
|
|
BOOL mode_change_exit;
|
|
|
|
/* Store a tile pixmap and BRUSH_MAPPING structure for the brush improvement code */
|
|
|
|
PEN_MAPPING *ppen;
|
|
BRUSH_MAPPING *pbrush;
|
|
|
|
X_PEN_MAPPING *pxpen;
|
|
X_BRUSH_MAPPING *pxbrush;
|
|
|
|
Pixmap tile_mapping;
|
|
word tile_depth,tile_width,tile_height;
|
|
|
|
/* Translation from host pixels to monochrome
|
|
* The HostToMono "function" enforces the 8-bit limit
|
|
*/
|
|
MSWPIXEL hostToMono[256];
|
|
#ifdef SWIN_BACKING_STORE
|
|
IBOOL draw_direct;
|
|
#endif
|
|
} MSW_DATA;
|
|
|
|
#define HostToMono(hostpixel) (mswdvr.hostToMono[(hostpixel)&0xff])
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* Driver optimizations
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
/* Enable Fast bitmap optimizations */
|
|
|
|
#define FASTBITMAP
|
|
|
|
/* Enable Output flush optimizations */
|
|
|
|
#define FLUSHSCANLINES TRUE
|
|
#define FLUSHPOLYLINES TRUE
|
|
#define FLUSHRECTANGLES TRUE
|
|
#define FLUSHELLIPSES TRUE
|
|
#define FLUSHBITMAPS TRUE
|
|
#define FLUSHTEXT TRUE
|
|
|
|
#endif /* MSWDVR_DEBUG */
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* Host driver routines
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#if !(defined(MSWDVR_DEBUG) && defined(MSWDVR_MAIN))
|
|
|
|
/* For some reason, all of these function names are remapped with #defines.
|
|
* The MSWDVR_DEBUG mechanism further remaps them to point to the
|
|
* various debug routines instead, but this only happens in ms_windows.h
|
|
*
|
|
* To allow for fussy pre-processors, add a #define MSWDVR_MAIN which is
|
|
* used in ms_windows.c to disable this particular translation.
|
|
*
|
|
* The ideal solution would be to do away with this whole level of misdirection.
|
|
*/
|
|
|
|
#define HostBitblt BltBitblt
|
|
#define HostColorInfo ColColorInfo
|
|
#define HostControl WinControl
|
|
#define HostDeviceBitmapBits DibDeviceBitmapBits
|
|
#define HostDisable WinDisable
|
|
#define HostEnable WinEnable
|
|
#define HostEventEnd PtrEventEnd
|
|
#define HostExtTextOut TxtExtTextOut
|
|
#define HostFastBorder BltFastBorder
|
|
#define HostSetDIBitsToDevice DibSetDIBitsToDevice
|
|
#define HostRealizeObject ObjRealizeObject
|
|
#define HostStrblt TxtStrblt
|
|
#define HostOutput OutOutput
|
|
#define HostPixel WinPixel
|
|
#define HostScanlr WinScanlr
|
|
#define HostSetCursor PtrSetCursor
|
|
#define HostSaveScreenBitmap SavSaveScreenBitmap
|
|
#define HostGetCharWidth TxtGetCharWidth
|
|
#define HostSetPalette ColSetPalette
|
|
#define HostGetPalette ColGetPalette
|
|
#define HostSetPalTrans ColSetPalTrans
|
|
#define HostGetPalTrans ColGetPalTrans
|
|
#define HostUpdateColors ColUpdateColors
|
|
#define HostPtrEnable PtrEnable
|
|
#define HostPtrDisable PtrDisable
|
|
#ifdef SWIN_DEVBMP
|
|
#define HostBitmapBits ObjBitmapBits
|
|
#define HostSelectBitmap ObjSelectBitmap
|
|
#endif /* SWIN_DEVBMP */
|
|
|
|
|
|
#endif /* !(defined(MSWDVR_DEBUG) && defined(MSWDVR_MAIN)) */
|
|
|
|
/* The following don't get a debug wrapper - don't know why... */
|
|
|
|
#define HostLogo LgoLogo
|
|
#define HostFillGDIInfo WinFillGDIInfo
|
|
#define HostFillPDEVInfo WinFillPDEVInfo
|
|
#define HostMoveCursor PtrMoveCursor
|
|
#define HostCheckCursor PtrCheckCursor
|
|
#define HostStretchBlt BltStretchBlt
|
|
|
|
/*
|
|
* -----------------------------------------------------------------------------
|
|
* Debug Entry Points
|
|
* -----------------------------------------------------------------------------
|
|
*/
|
|
|
|
/* Functions */
|
|
|
|
#ifdef MSWDVR_DEBUG
|
|
|
|
/*
|
|
* Low-level functions.
|
|
*/
|
|
extern VOID DReportColEnquire IPT2(MSWCOLOUR,colour,sys_addr,pcolour);
|
|
extern VOID DReportPixelEnquire IPT2(MSWPIXEL,pixel,MSWCOLOUR,rgb);
|
|
extern VOID DPrintBitmap IPT3(UTINY *,bitmap,ULONG,bytes_per_line,ULONG,height);
|
|
extern VOID DPrintMonoBitmap IPT4(UTINY *,bitmap,ULONG,bytes_per_line,ULONG,width,ULONG,height);
|
|
extern VOID DPrintImageDetails IPT1(XImage *,img);
|
|
extern VOID DPrintBitmapDetails IPT1(sys_addr,bm);
|
|
extern VOID DPrintDevBitmapDetails IPT1(sys_addr,bm);
|
|
extern VOID DPrintMessage IPT1(CHAR *,message);
|
|
extern VOID DPrintInteger IPT1(LONG,integer);
|
|
extern VOID DPrintColourmap IPT2(MSWCOLOURMAP *,colourmap,ULONG,colourmapSize);
|
|
extern VOID DPrintSrcDstRect IPT6(LONG,sx,LONG,sy,LONG,dx,LONG,dy,ULONG,xext,ULONG,yext);
|
|
extern VOID DPrintPBrush IPT1(sys_addr, lpBrush);
|
|
extern VOID DPrintPPen IPT1(sys_addr,PPen);
|
|
extern VOID DPrintDrawMode IPT2(sys_addr,DrawMode, BOOL, text);
|
|
extern VOID DPrintDevice IPT1(sys_addr,Device);
|
|
extern VOID DPrintlpPoints IPT2(sys_addr,lpPoints,word,Count);
|
|
extern VOID DPrintClipRect IPT1(sys_addr,lpClipRect);
|
|
extern VOID DPrintObject IPT3(word,style,sys_addr,lpInObj,sys_addr,lpOutObj);
|
|
extern VOID DPrintFontInfo IPT1(sys_addr,pfont);
|
|
extern VOID DPrintTextXForm IPT1(sys_addr,lpTextXForm);
|
|
extern VOID DPrintDIBHeader IPT2(sys_addr,lpDIBHeader,word,setOrget);
|
|
extern VOID DPrintTransTable IPT2(MSWPIXEL *,table,ULONG,tableSize);
|
|
extern VOID DDrawLogo IPT1(sys_addr,stkframe);
|
|
|
|
/*
|
|
* High-level functions
|
|
*/
|
|
extern VOID DBitblt IPT11 ( sys_addr,lpDestDev, word,dstXOrg,word,dstYOrg,
|
|
sys_addr,lpSrcDev, word,srcXOrg,word,srcYOrg,
|
|
word,xext,word,yext,double_word,rop3,
|
|
sys_addr,lpPBrush,sys_addr,lpDrawMode);
|
|
extern VOID DColorInfo IPT3(sys_addr,lpDestDev,double_word,colorin,sys_addr,lpPColor);
|
|
extern VOID DControl IPT4(sys_addr,lpDestDev,word,wFunction,sys_addr,lpInData,sys_addr,lpOutData);
|
|
extern VOID DDisable IPT1(sys_addr,lpDestDev);
|
|
extern VOID DEnable IPT5(sys_addr,lpDestDev,word,wStyle,sys_addr,lpDestType,sys_addr,
|
|
lpOutputFile,sys_addr,lpData);
|
|
extern VOID DEnumDFonts IPT1(sys_addr,stkframe);
|
|
extern VOID DEnumObj IPT1(sys_addr,stkframe);
|
|
extern VOID DOutput IPT8(sys_addr,lpDestDev,word,lpStyle,word,Count,sys_addr,lpPoints,
|
|
sys_addr,lpPPen,sys_addr,lpPBrush,sys_addr,lpDrawMode,sys_addr,lpClipRect);
|
|
extern VOID DPixel IPT5(sys_addr,lpDestDev,word,x,word,y,double_word,PhysColor,sys_addr,lpDrawMode);
|
|
#ifdef SWIN_DEVBMP
|
|
extern VOID DBitmapBits IPT4(sys_addr,lpDevice,double_word,fFlags,double_word,dwCount,double_word,lpBits);
|
|
extern VOID DSelectBitmap IPT4(sys_addr,lpDevice,sys_addr,lpPrevBitmap,sys_addr,lpBitmap,double_word,fFlags);
|
|
#endif
|
|
extern VOID DRealizeObject IPT5(word,Style,sys_addr,lpInObj,sys_addr,lpOutObj,word,originX,word,originY);
|
|
extern VOID DStrblt IPT9(sys_addr,lpDestDev,word,DestxOrg,word,DestyOrg,sys_addr,lpClipRect,
|
|
sys_addr,lpString,word,Count,sys_addr,lpFont,sys_addr,lpDrawMode, sys_addr,lpTextXForm);
|
|
extern VOID DScanlr IPT5(sys_addr,lpDestDev,word,x,word,y,double_word,PhysColor,word,Style);
|
|
extern VOID DDeviceMode IPT1(sys_addr,stkframe);
|
|
extern VOID DInquire IPT1(sys_addr,stkframe);
|
|
extern VOID DSetCursor IPT1(sys_addr,lpCursorShape);
|
|
extern VOID DMoveCursor IPT1(sys_addr,stkframe);
|
|
extern VOID DCheckCursor IPT1(sys_addr,stkframe);
|
|
extern VOID DSaveScreenBitmap IPT5(word, command, word, x, word, y, word, xext, word, yext);
|
|
extern VOID DExtTextOut IPT12(sys_addr, dstdev, word, dx, word, dy, sys_addr, cliprect, sys_addr,
|
|
str, word, strlnth, sys_addr, pfont, sys_addr, drawmode, sys_addr, textxform,
|
|
sys_addr, txtcharwidths, sys_addr, opaquerect, word, options);
|
|
extern VOID DGetCharWidth IPT7(sys_addr,dstdev,sys_addr,buffer,word,first,word,last,sys_addr,
|
|
pfont,sys_addr,drawmode,sys_addr,textxform);
|
|
extern VOID DDeviceBitmap IPT1(sys_addr,stkframe);
|
|
extern VOID DDeviceBitmapBits IPT8(sys_addr,lpDestDev,word,setOrget,word,startScan,word,
|
|
numScans,sys_addr,lpDIBBits,sys_addr,lpDIBHeader,sys_addr,
|
|
lpDrawMode,sys_addr,lpColorInfo);
|
|
extern VOID DSetDIBitsToDevice IPT10(sys_addr, lpDestDev, word, screenXOrigin, word,
|
|
screenYOrigin, word, startScan, word, numScans, sys_addr, lpClipRect,
|
|
sys_addr, lpDrawMode, sys_addr, lpDIBBits, sys_addr, lpDIBHeader,
|
|
sys_addr, lpColorInfo);
|
|
extern VOID DFastBorder IPT11(sys_addr,lpDestDev,word,dx,word,dy,word,xext,word,yext,
|
|
word,hbt,word,vbt,double_word,rop3,sys_addr,pbrush,
|
|
sys_addr,drawmode,sys_addr,cliprect);
|
|
extern VOID DSetAttribute IPT1(sys_addr,stkframe);
|
|
extern VOID DSetPalette IPT3(word,wIndex,word,wCount,sys_addr,lpColorTable);
|
|
extern VOID DGetPalette IPT3(word,wIndex,word,wCount,sys_addr,lpColorTable);
|
|
extern VOID DSetPalTrans IPT1(sys_addr,lpTranslate);
|
|
extern VOID DGetPalTrans IPT1(sys_addr,lpTranslate);
|
|
extern VOID DUpdateColors IPT5(word,wStartX,word,wStartY,word,wExtX,word,wExtY,sys_addr,lpTranslate);
|
|
extern char * DGXopToString IPT1(int, gxop);
|
|
extern void DPrintLineStyle IPT1(int, style);
|
|
extern void DPrintBrushStyle IPT1(int, style);
|
|
extern void DPrintStyle IPT1(int, lpStyle);
|
|
|
|
#else
|
|
|
|
#define DPrintMonoBitmap(bitmap,bytes_per_line,width,height)
|
|
#define DReportColEnquire(p1,p2)
|
|
#define DReportPixelEnquire(p1,p2)
|
|
#define DPrintImageDetails(p1)
|
|
#define DPrintBitmapDetails(p1)
|
|
#define DPrintMessage(p1)
|
|
#define DPrintColourmap(p1,p2)
|
|
#define DPrintSrcDstRect(p1,p2,p3,p4,p5,p6)
|
|
#define DPrintGDIInfo
|
|
#define DPrintBitmap(p1,p2,p3)
|
|
#define DPrintPBrush(p1,p2)
|
|
#define DPrintPpen(p1)
|
|
#define DPrintDrawMode(p1,p2)
|
|
#define DPrintDevice(p1)
|
|
#define DPrintlpPoints(p1,p2)
|
|
#define DPrintClipRect(p1)
|
|
#define DPrintInteger(p1)
|
|
#define DPrintTransTable(p1,p2)
|
|
#define DGXopToString (p1)
|
|
#define DPrintLineStyle (p1)
|
|
#define DPrintBrushStyle (p1)
|
|
#define DPrintStyle (p1)
|
|
|
|
#define DBitblt(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11)
|
|
#define DColorInfo(p1,p2,p3)
|
|
#define DControl(p1,p2,p3,p4)
|
|
#define DDisable(p1)
|
|
#define DDeviceBitmapBits(p1,p2,p3,p4,p5,p6,p7,p8)
|
|
#define DEnable(p1,p2,p3,p4,p5)
|
|
#define DExtTextOut(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12)
|
|
#define DFastBorder(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11)
|
|
#define DGetPaletteEntries(p1,p2,p3)
|
|
#define DGetPaletteTranslate(p1,p2)
|
|
#define DOutput(p1,p2,p3,p4,p5,p6,p7,p8)
|
|
#define DPixel(p1,p2,p3,p4,p5)
|
|
#define DRealizeObject(p1,p2,p3,p4,p5)
|
|
#define DSaveScreenBitmap(p1,p2,p3,p4,p5)
|
|
#define DScanlr(p1,p2,p3,p4,p5)
|
|
#define DSetDIBitsToDevice(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)
|
|
#define DSetPaletteEntries(p1,p2,p3)
|
|
#define DSetPaletteTranslate(p1,p2)
|
|
#define DStrblt(p1,p2,p3,p4,p5,p6,p7,p8,p9)
|
|
#define DUpdateColors(p1,p2,p3,p4,p5)
|
|
|
|
#endif
|