Changed calling convention of EngXxx funtions to STDCALL.

Added missing includes.

svn path=/trunk/; revision=3096
This commit is contained in:
Eric Kohl 2002-06-15 21:44:08 +00:00
parent 37c39cc09a
commit 7c25d62093
19 changed files with 421 additions and 230 deletions

View file

@ -930,7 +930,8 @@ DrvStartDoc(IN PSURFOBJ SurfObj,
IN DWORD JobID);
BOOL STDCALL
DrvStartPage(IN PSURFOBJ SurfObj);
BOOL DrvStretchBlt(IN PSURFOBJ DestSurface,
BOOL STDCALL
DrvStretchBlt(IN PSURFOBJ DestSurface,
IN PSURFOBJ SrcSurface,
IN PSURFOBJ MaskSurface,
IN PCLIPOBJ ClipObj,
@ -988,18 +989,26 @@ BOOL STDCALL
DrvUnloadFontFile(IN ULONG FileNumber);
/* DDI --> GDI calls */
PVOID BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
PVOID STDCALL
BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
IN ULONG ObjSize);
PVOID BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj);
BOOL CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj,
PVOID STDCALL
BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj);
BOOL STDCALL
CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj,
IN ULONG ObjSize,
OUT ULONG *EnumRects);
ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj,
ULONG STDCALL
CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj,
IN BOOL ShouldDoAll,
IN ULONG ClipType,
IN ULONG BuildOrder,
IN ULONG MaxRects);
PPATHOBJ CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj);
PPATHOBJ STDCALL
CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj);
/*
EngAcquireSemaphore
@ -1017,31 +1026,53 @@ PVOID STDCALL
EngAllocUserMem(ULONG cj,
ULONG tag);
BOOL
BOOL STDCALL
EngAssociateSurface(IN HSURF Surface,
IN HDEV Dev,
IN ULONG Hooks);
BOOL STDCALL
EngBitBlt(SURFOBJ *Dest,
SURFOBJ *Source,
SURFOBJ *Mask,
CLIPOBJ *ClipRegion,
XLATEOBJ *ColorTranslation,
RECTL *DestRect,
POINTL *SourcePoint,
POINTL *MaskRect,
BRUSHOBJ *Brush,
POINTL *BrushOrigin,
ROP4 rop4);
/*
EngBitBlt
EngCheckAbort
EngComputeGlyphSet
EngCopyBits
*/
HBITMAP
BOOL STDCALL
EngCopyBits(SURFOBJ *Dest,
SURFOBJ *Source,
CLIPOBJ *Clip,
XLATEOBJ *ColorTranslation,
RECTL *DestRect,
POINTL *SourcePoint);
HBITMAP STDCALL
EngCreateBitmap(IN SIZEL Size,
IN LONG Width,
IN ULONG Format,
IN ULONG Flags,
IN PVOID Bits);
/*
EngCreateClip
EngCreateDeviceBitmap
*/
PCLIPOBJ STDCALL
EngCreateClip(VOID);
HSURF
HBITMAP STDCALL
EngCreateDeviceBitmap(IN DHSURF Surface,
IN SIZEL Size,
IN ULONG Format);
HSURF STDCALL
EngCreateDeviceSurface(IN DHSURF Surface,
IN SIZEL Size,
IN ULONG FormatVersion);
@ -1051,7 +1082,7 @@ EngCreateDriverObj
EngCreateEvent
*/
HPALETTE
HPALETTE STDCALL
EngCreatePalette(IN ULONG Mode,
IN ULONG NumColors,
IN PULONG *Colors,
@ -1063,27 +1094,40 @@ EngCreatePalette(IN ULONG Mode,
EngCreatePath
EngCreateSemaphore
EngCreateWnd
EngDebugBreak = NTOSKRNL.DbgBreakPoint
*/
VOID APIENTRY
VOID STDCALL
EngDebugBreak(VOID);
VOID STDCALL
EngDebugPrint(PCHAR StandardPrefix,
PCHAR DebugMessage,
va_list ArgList);
VOID STDCALL
EngDeleteClip(CLIPOBJ *ClipRegion);
/*
EngDeleteClip
EngDeleteDriverObj
EngDeleteEvent
EngDeletePalette
*/
BOOL STDCALL
EngDeletePalette(IN HPALETTE Palette);
/*
EngDeletePath
EngDeleteSemaphore
EngDeleteSurface
*/
BOOL STDCALL
EngDeleteSurface(IN HSURF Surface);
/*
EngDeleteWnd
*/
DWORD APIENTRY
DWORD STDCALL
EngDeviceIoControl(HANDLE hDevice,
DWORD dwIoControlCode,
LPVOID lpInBuffer,
@ -1094,7 +1138,14 @@ EngDeviceIoControl(HANDLE hDevice,
/*
EngEnumForms
EngEraseSurface
*/
BOOL STDCALL
EngEraseSurface(SURFOBJ *Surface,
RECTL *Rect,
ULONG iColor);
/*
EngFillPath
EngFindImageProcAddress
EngFindResource
@ -1103,11 +1154,14 @@ EngFindResource
VOID STDCALL
EngFreeMem(PVOID Mem);
/*
EngFreeModule
*/
VOID STDCALL
EngFreeUserMem(PVOID pv);
/*
EngFreeModule
EngGetCurrentCodePage
EngGetDriverName
EngGetFileChangeTime
@ -1119,9 +1173,19 @@ EngGetPrinterData
EngGetPrinterDataFileName
EngGetProcessHandle
EngGetType1FontList
EngLineTo
*/
BOOL STDCALL
EngLineTo(SURFOBJ *Surface,
CLIPOBJ *Clip,
BRUSHOBJ *Brush,
LONG x1,
LONG y1,
LONG x2,
LONG y2,
RECTL *RectBounds,
MIX mix);
HANDLE STDCALL
EngLoadImage(LPWSTR DriverName);
@ -1129,7 +1193,12 @@ EngLoadImage(LPWSTR DriverName);
EngLoadModule
EngLoadModuleForWrite
EngLockDriverObj
EngLockSurface
*/
SURFOBJ * STDCALL
EngLockSurface(IN HSURF Surface);
/*
EngMapEvent
EngMapFontFile
EngMapModule
@ -1138,7 +1207,16 @@ EngMovePointer
EngMulDiv
EngMultiByteToUnicodeN
EngMultiByteToWideChar
EngPaint
*/
BOOL STDCALL
EngPaint(IN SURFOBJ *Surface,
IN CLIPOBJ *ClipRegion,
IN BRUSHOBJ *Brush,
IN POINTL *BrushOrigin,
IN MIX Mix);
/*
EngProbeForRead
EngProbeForReadAndWrite = NTOSKRNL.ProbeForWrite
EngQueryLocalTime
@ -1159,6 +1237,19 @@ EngStretchBlt
EngStrokeAndFillPath
EngStrokePath
EngTextOut
*/
BOOL STDCALL
EngTransparentBlt(PSURFOBJ Dest,
PSURFOBJ Source,
PCLIPOBJ Clip,
PXLATEOBJ ColorTranslation,
PRECTL DestRect,
PRECTL SourceRect,
ULONG TransparentColor,
ULONG Reserved);
/*
EngUnicodeToMultiByteN
EngUnloadImage
EngUnlockDriverObj
@ -1217,7 +1308,15 @@ VOID FONTOBJ_vGetInfo(IN PFONTOBJ FontObj,
/*
HT_ComputeRGBGammaTable
HT_Get8BPPFormatPalette
PALOBJ_cGetColors
*/
ULONG STDCALL
PALOBJ_cGetColors(PALOBJ *PalObj,
ULONG Start,
ULONG Colors,
ULONG *PaletteEntry);
/*
PATHOBJ_bCloseFigure
PATHOBJ_bEnum
PATHOBJ_bEnumClipLines
@ -1244,10 +1343,20 @@ WNDOBJ_vSetConsumer
XFORMOBJ_bApplyXform
XFORMOBJ_iGetFloatObjXform
XFORMOBJ_iGetXform
XLATEOBJ_cGetPalette
XLATEOBJ_iXlate
XLATEOBJ_piVector
*/
ULONG STDCALL
XLATEOBJ_cGetPalette(XLATEOBJ *XlateObj,
ULONG PalOutType,
ULONG cPal,
ULONG *OutPal);
ULONG STDCALL
XLATEOBJ_iXlate(XLATEOBJ *XlateObj,
ULONG Color);
ULONG * STDCALL
XLATEOBJ_piVector(XLATEOBJ *XlateObj);
#endif

View file

@ -42,11 +42,18 @@ BOOL EngIntersectRect(PRECTL prcDst, PRECTL prcSrc1, PRECTL prcSrc2)
INT abs(INT nm);
BOOL EngBitBlt(SURFOBJ *Dest, SURFOBJ *Source,
SURFOBJ *Mask, CLIPOBJ *ClipRegion,
XLATEOBJ *ColorTranslation, RECTL *DestRect,
POINTL *SourcePoint, POINTL *MaskRect,
BRUSHOBJ *Brush, POINTL *BrushOrigin, ROP4 rop4)
BOOL STDCALL
EngBitBlt(SURFOBJ *Dest,
SURFOBJ *Source,
SURFOBJ *Mask,
CLIPOBJ *ClipRegion,
XLATEOBJ *ColorTranslation,
RECTL *DestRect,
POINTL *SourcePoint,
POINTL *MaskRect,
BRUSHOBJ *Brush,
POINTL *BrushOrigin,
ROP4 rop4)
{
BOOLEAN ret;
BYTE clippingType;

View file

@ -10,14 +10,16 @@
#include <ddk/winddi.h>
PVOID BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
PVOID STDCALL
BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
IN ULONG ObjSize)
{
BrushObj->pvRbrush=EngAllocMem(0, ObjSize, 0);
return BrushObj->pvRbrush;
return(BrushObj->pvRbrush);
}
PVOID BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj)
PVOID STDCALL
BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj)
{
return BrushObj->pvRbrush;
return(BrushObj->pvRbrush);
}

View file

@ -84,18 +84,23 @@ VOID EngIntersectClipRegion(CLIPOBJ *ClipObj, ULONG NumRects, RECTL *IntersectRe
}
}
CLIPOBJ *EngCreateClip(VOID)
CLIPOBJ * STDCALL
EngCreateClip(VOID)
{
return EngAllocMem(FL_ZERO_MEMORY, sizeof(CLIPOBJ), 0);
}
VOID EngDeleteClip(CLIPOBJ *ClipRegion)
VOID STDCALL
EngDeleteClip(CLIPOBJ *ClipRegion)
{
EngFreeMem(ClipRegion);
}
ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj, IN BOOL ShouldDoAll,
IN ULONG ClipType, IN ULONG BuildOrder,
ULONG STDCALL
CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj,
IN BOOL ShouldDoAll,
IN ULONG ClipType,
IN ULONG BuildOrder,
IN ULONG MaxRects)
{
CLIPGDI *ClipGDI = (CLIPGDI*)AccessInternalObjectFromUserObject(ClipObj);
@ -112,7 +117,9 @@ ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj, IN BOOL ShouldDoAll,
return ClipGDI->EnumRects.c;
}
BOOL CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj, IN ULONG ObjSize,
BOOL STDCALL
CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj,
IN ULONG ObjSize,
OUT ULONG *EnumRects)
{
CLIPGDI *ClipGDI = (CLIPGDI*)AccessInternalObjectFromUserObject(ClipObj);

View file

@ -51,9 +51,13 @@ BOOLEAN CopyBitsCopy(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
return TRUE;
}
BOOL EngCopyBits(SURFOBJ *Dest, SURFOBJ *Source,
CLIPOBJ *Clip, XLATEOBJ *ColorTranslation,
RECTL *DestRect, POINTL *SourcePoint)
BOOL STDCALL
EngCopyBits(SURFOBJ *Dest,
SURFOBJ *Source,
CLIPOBJ *Clip,
XLATEOBJ *ColorTranslation,
RECTL *DestRect,
POINTL *SourcePoint)
{
BOOLEAN ret;
SURFGDI *DestGDI, *SourceGDI;

View file

@ -10,7 +10,10 @@
#include <ddk/ntddk.h>
VOID STDCALL EngDebugPrint(PCHAR StandardPrefix, PCHAR DebugMessage, va_list ap)
VOID STDCALL
EngDebugPrint(PCHAR StandardPrefix,
PCHAR DebugMessage,
va_list ap)
{
DbgPrint(StandardPrefix);
DbgPrint(DebugMessage, ap);

View file

@ -2,9 +2,20 @@
#include "objects.h"
#include "../dib/dib.h"
BOOL EngLineTo(SURFOBJ *Surface, CLIPOBJ *Clip, BRUSHOBJ *Brush,
LONG x1, LONG y1, LONG x2, LONG y2,
RECTL *RectBounds, MIX mix)
#include <include/mouse.h>
#include <include/object.h>
#include <include/surface.h>
BOOL STDCALL
EngLineTo(SURFOBJ *Surface,
CLIPOBJ *Clip,
BRUSHOBJ *Brush,
LONG x1,
LONG y1,
LONG x2,
LONG y2,
RECTL *RectBounds,
MIX mix)
{
BOOLEAN ret;
SURFGDI *SurfGDI;

View file

@ -11,7 +11,10 @@
#include <ddk/ntddk.h>
#include <ddk/winddi.h>
PVOID STDCALL EngAllocMem(ULONG Flags, ULONG MemSize, ULONG Tag)
PVOID STDCALL
EngAllocMem(ULONG Flags,
ULONG MemSize,
ULONG Tag)
{
PVOID newMem;
@ -25,12 +28,14 @@ PVOID STDCALL EngAllocMem(ULONG Flags, ULONG MemSize, ULONG Tag)
return newMem;
}
VOID STDCALL EngFreeMem(PVOID Mem)
VOID STDCALL
EngFreeMem(PVOID Mem)
{
ExFreePool(Mem);
}
PVOID STDCALL EngAllocUserMem(ULONG cj, ULONG tag)
PVOID STDCALL
EngAllocUserMem(ULONG cj, ULONG tag)
{
/* PVOID newMem;
@ -40,7 +45,8 @@ PVOID STDCALL EngAllocUserMem(ULONG cj, ULONG tag)
return NULL;
}
VOID STDCALL EngFreeUserMem(PVOID pv)
VOID STDCALL
EngFreeUserMem(PVOID pv)
{
/* ZwFreeVirtualMemory (mycurrentprocess, pv, 0, MEM_DECOMMIT); */
}

View file

@ -56,48 +56,48 @@ typedef struct _STRGDI {
} STRGDI;
typedef BOOL (*PFN_BitBlt)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ,
typedef BOOL STDCALL (*PFN_BitBlt)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ,
PXLATEOBJ, PRECTL, PPOINTL, PPOINTL,
PBRUSHOBJ, PPOINTL, ROP4);
typedef BOOL (*PFN_TransparentBlt)(PSURFOBJ, PSURFOBJ, PCLIPOBJ, PXLATEOBJ, PRECTL, PRECTL, ULONG, ULONG);
typedef BOOL STDCALL (*PFN_TransparentBlt)(PSURFOBJ, PSURFOBJ, PCLIPOBJ, PXLATEOBJ, PRECTL, PRECTL, ULONG, ULONG);
typedef BOOL (*PFN_StretchBlt)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ,
typedef BOOL STDCALL (*PFN_StretchBlt)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PCLIPOBJ,
PXLATEOBJ, PCOLORADJUSTMENT, PPOINTL,
PRECTL, PRECTL, PPOINT, ULONG);
typedef BOOL (*PFN_TextOut)(PSURFOBJ, PSTROBJ, PFONTOBJ, PCLIPOBJ,
typedef BOOL STDCALL (*PFN_TextOut)(PSURFOBJ, PSTROBJ, PFONTOBJ, PCLIPOBJ,
PRECTL, PRECTL, PBRUSHOBJ, PBRUSHOBJ,
PPOINTL, MIX);
typedef BOOL (*PFN_Paint)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ, PPOINTL, MIX);
typedef BOOL STDCALL (*PFN_Paint)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ, PPOINTL, MIX);
typedef BOOL (*PFN_StrokePath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PXFORMOBJ,
typedef BOOL STDCALL (*PFN_StrokePath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PXFORMOBJ,
PBRUSHOBJ, PPOINTL, PLINEATTRS, MIX);
typedef BOOL (*PFN_FillPath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PBRUSHOBJ,
typedef BOOL STDCALL (*PFN_FillPath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ, PBRUSHOBJ,
PPOINTL, MIX, ULONG);
typedef BOOL (*PFN_StrokeAndFillPath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ,
typedef BOOL STDCALL (*PFN_StrokeAndFillPath)(PSURFOBJ, PPATHOBJ, PCLIPOBJ,
PXFORMOBJ, PBRUSHOBJ, PLINEATTRS, PBRUSHOBJ,
PPOINTL, MIX, ULONG);
typedef BOOL (*PFN_LineTo)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ,
typedef BOOL STDCALL (*PFN_LineTo)(PSURFOBJ, PCLIPOBJ, PBRUSHOBJ,
LONG, LONG, LONG, LONG, PRECTL, MIX);
typedef BOOL (*PFN_CopyBits)(PSURFOBJ, PSURFOBJ, PCLIPOBJ,
typedef BOOL STDCALL (*PFN_CopyBits)(PSURFOBJ, PSURFOBJ, PCLIPOBJ,
PXLATEOBJ, PRECTL, PPOINTL);
typedef VOID (*PFN_Synchronize)(DHPDEV, PRECTL);
typedef VOID STDCALL (*PFN_Synchronize)(DHPDEV, PRECTL);
typedef VOID (*PFN_MovePointer)(PSURFOBJ, LONG, LONG, PRECTL);
typedef VOID STDCALL (*PFN_MovePointer)(PSURFOBJ, LONG, LONG, PRECTL);
typedef VOID (*PFN_SetPointerShape)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PXLATEOBJ,
typedef VOID STDCALL (*PFN_SetPointerShape)(PSURFOBJ, PSURFOBJ, PSURFOBJ, PXLATEOBJ,
LONG, LONG, LONG, LONG, PRECTL, ULONG);
typedef HBITMAP (*PFN_CreateDeviceBitmap)(DHPDEV, SIZEL, ULONG);
typedef HBITMAP STDCALL (*PFN_CreateDeviceBitmap)(DHPDEV, SIZEL, ULONG);
typedef BOOL (*PFN_SetPalette)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
typedef BOOL STDCALL (*PFN_SetPalette)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
typedef struct _SURFGDI {
INT BitsPerPixel;

View file

@ -9,6 +9,8 @@
*/
#include <ddk/winddi.h>
#include <include/object.h>
#include <include/paint.h>
#include "objects.h"
#include "brush.h"
#include "enum.h"
@ -65,8 +67,11 @@ BOOL EngPaintRgn(SURFOBJ *Surface, CLIPOBJ *ClipRegion, ULONG iColor, MIX Mix,
}
}
BOOL EngPaint(IN SURFOBJ *Surface, IN CLIPOBJ *ClipRegion,
IN BRUSHOBJ *Brush, IN POINTL *BrushOrigin,
BOOL STDCALL
EngPaint(IN SURFOBJ *Surface,
IN CLIPOBJ *ClipRegion,
IN BRUSHOBJ *Brush,
IN POINTL *BrushOrigin,
IN MIX Mix)
{
BOOLEAN ret;
@ -93,8 +98,3 @@ BOOL EngPaint(IN SURFOBJ *Surface, IN CLIPOBJ *ClipRegion,
return ret;
}
BOOL EngEraseSurface(SURFOBJ *Surface, RECTL *Rect, ULONG iColor)
{
return FillSolid(Surface, Rect, iColor);
}

View file

@ -9,9 +9,11 @@
*/
#include <ddk/winddi.h>
#include <include/object.h>
#include "objects.h"
HPALETTE EngCreatePalette(ULONG Mode,
HPALETTE STDCALL
EngCreatePalette(ULONG Mode,
ULONG NumColors,
PULONG *Colors, // FIXME: This was implemented with ULONG *Colors!!
ULONG Red,
@ -50,22 +52,26 @@ HPALETTE EngCreatePalette(ULONG Mode,
return NewPalette;
}
BOOL EngDeletePalette(IN HPALETTE Palette)
BOOL STDCALL
EngDeletePalette(IN HPALETTE Palette)
{
PALOBJ *PalObj;
PALGDI *PalGDI;
PalGDI = (PALGDI*)AccessInternalObject(Palette);
PalObj = (PALOBJ*)AccessUserObject(Palette);
PalGDI = (PALGDI*)AccessInternalObject((ULONG)Palette);
PalObj = (PALOBJ*)AccessUserObject((ULONG)Palette);
EngFreeMem(PalGDI);
EngFreeMem(PalObj);
FreeGDIHandle(Palette);
FreeGDIHandle((ULONG)Palette);
return TRUE;
}
ULONG PALOBJ_cGetColors(PALOBJ *PalObj, ULONG Start, ULONG Colors,
ULONG STDCALL
PALOBJ_cGetColors(PALOBJ *PalObj,
ULONG Start,
ULONG Colors,
ULONG *PaletteEntry)
{
ULONG i, entry;

View file

@ -14,6 +14,9 @@
#include <ddk/winddi.h>
#include <win32k/dc.h>
#include <include/dib.h>
#include <include/object.h>
#include <include/paint.h>
#include "objects.h"
INT BitsPerFormat(ULONG Format)
@ -63,19 +66,23 @@ VOID InitializeHooks(SURFGDI *SurfGDI)
SurfGDI->TransparentBlt = NULL;
}
HBITMAP EngCreateDeviceBitmap(DHSURF dhsurf, SIZEL Size, ULONG Format)
HBITMAP STDCALL
EngCreateDeviceBitmap(IN DHSURF dhsurf,
IN SIZEL Size,
IN ULONG Format)
{
HBITMAP NewBitmap;
SURFOBJ *SurfObj;
NewBitmap = EngCreateBitmap(Size, DIB_GetDIBWidthBytes(Size.cx, BitsPerFormat(Format)), Format, 0, NULL);
SurfObj = (PVOID)AccessUserObject(NewBitmap);
SurfObj = (PVOID)AccessUserObject((ULONG)NewBitmap);
SurfObj->dhpdev = dhsurf;
return NewBitmap;
}
HBITMAP EngCreateBitmap(IN SIZEL Size,
HBITMAP STDCALL
EngCreateBitmap(IN SIZEL Size,
IN LONG Width,
IN ULONG Format,
IN ULONG Flags,
@ -125,7 +132,10 @@ HBITMAP EngCreateBitmap(IN SIZEL Size,
return NewBitmap;
}
HSURF EngCreateDeviceSurface(DHSURF dhsurf, SIZEL Size, ULONG Format)
HSURF STDCALL
EngCreateDeviceSurface(IN DHSURF dhsurf,
IN SIZEL Size,
IN ULONG Format)
{
HSURF NewSurface;
SURFOBJ *SurfObj;
@ -161,15 +171,18 @@ PFN DriverFunction(DRVENABLEDATA *DED, ULONG DriverFunc)
return NULL;
}
BOOL EngAssociateSurface(HSURF Surface, HDEV Dev, ULONG Hooks)
BOOL STDCALL
EngAssociateSurface(IN HSURF Surface,
IN HDEV Dev,
IN ULONG Hooks)
{
SURFOBJ *SurfObj;
SURFGDI *SurfGDI;
PDC Dc = (PDC)Dev;
SurfGDI = (PVOID)AccessInternalObject(Surface);
SurfObj = (PVOID)AccessUserObject(Surface);
SurfGDI = (PVOID)AccessInternalObject((ULONG)Surface);
SurfObj = (PVOID)AccessUserObject((ULONG)Surface);
// Associate the hdev
SurfObj->hdev = Dev;
@ -196,23 +209,33 @@ BOOL EngAssociateSurface(HSURF Surface, HDEV Dev, ULONG Hooks)
return TRUE;
}
BOOL EngDeleteSurface(HSURF Surface)
BOOL STDCALL
EngDeleteSurface(IN HSURF Surface)
{
SURFOBJ *SurfObj;
SURFGDI *SurfGDI;
SurfGDI = (SURFGDI*)AccessInternalObject(Surface);
SurfObj = (SURFOBJ*)AccessUserObject(Surface);
SurfGDI = (SURFGDI*)AccessInternalObject((ULONG)Surface);
SurfObj = (SURFOBJ*)AccessUserObject((ULONG)Surface);
EngFreeMem(SurfGDI);
EngFreeMem(SurfObj);
FreeGDIHandle(Surface);
FreeGDIHandle((ULONG)Surface);
return TRUE;
}
SURFOBJ *EngLockSurface(HSURF Surface)
BOOL STDCALL
EngEraseSurface(SURFOBJ *Surface,
RECTL *Rect,
ULONG iColor)
{
return FillSolid(Surface, Rect, iColor);
}
SURFOBJ * STDCALL
EngLockSurface(IN HSURF Surface)
{
// FIXME: Call GDI_LockObject (see subsys/win32k/objects/gdi.c)
return (SURFOBJ*)AccessUserObject(Surface);
return (SURFOBJ*)AccessUserObject((ULONG)Surface);
}

View file

@ -11,14 +11,25 @@
#include <ddk/winddi.h>
#include <ddk/ntddk.h>
#include <ntos/minmax.h>
#include <include/dib.h>
#include <include/object.h>
#include <include/surface.h>
#include "brush.h"
#include "enum.h"
#include "objects.h"
BOOL EngTransparentBlt(PSURFOBJ Dest, PSURFOBJ Source,
PCLIPOBJ Clip, PXLATEOBJ ColorTranslation,
PRECTL DestRect, PRECTL SourceRect,
ULONG TransparentColor, ULONG Reserved)
#include <include/mouse.h>
BOOL STDCALL
EngTransparentBlt(PSURFOBJ Dest,
PSURFOBJ Source,
PCLIPOBJ Clip,
PXLATEOBJ ColorTranslation,
PRECTL DestRect,
PRECTL SourceRect,
ULONG TransparentColor,
ULONG Reserved)
{
PSURFGDI DestGDI = (PSURFGDI)AccessInternalObjectFromUserObject(Dest),
SourceGDI = (PSURFGDI)AccessInternalObjectFromUserObject(Source);
@ -55,8 +66,9 @@ BOOL EngTransparentBlt(PSURFOBJ Dest, PSURFOBJ Source,
TempSize.cy = TempRect.bottom;
hTemp = EngCreateBitmap(TempSize,
DIB_GetDIBWidthBytes(dx, BitsPerFormat(Dest->iBitmapFormat)), Dest->iBitmapFormat, 0, NULL);
TempSurf = (PSURFOBJ)AccessUserObject(hTemp);
DIB_GetDIBWidthBytes(dx, BitsPerFormat(Dest->iBitmapFormat)),
Dest->iBitmapFormat, 0, NULL);
TempSurf = (PSURFOBJ)AccessUserObject((ULONG)hTemp);
SourcePoint.x = SourceRect->left;
SourcePoint.y = SourceRect->top;

View file

@ -14,6 +14,7 @@
#include <ddk/winddi.h>
#include <ddk/ntddvid.h>
#include <include/object.h>
#include "objects.h"
ULONG CCMLastSourceColor = 0, CCMLastColorMatch = 0;
@ -59,10 +60,10 @@ ULONG ClosestColorMatch(ULONG SourceColor, ULONG *DestColors,
return CCMLastColorMatch;
}
cSourceColor = &SourceColor;
cSourceColor = (PVIDEO_CLUTDATA)&SourceColor;
for (i=0; i<NumColors; i++)
{
cDestColors = &DestColors[i];
cDestColors = (PVIDEO_CLUTDATA)&DestColors[i];
cxRed = abs(cSourceColor->Red - cDestColors->Red) ^ 2;
cxGreen = abs(cSourceColor->Green - cDestColors->Green) ^ 2;
@ -110,8 +111,10 @@ XLATEOBJ *EngCreateXlate(USHORT DestPalType, USHORT SourcePalType,
NewXlate = (HPALETTE)CreateGDIHandle(XlateGDI, XlateObj);
if(SourcePalType == PAL_INDEXED) SourcePalGDI = (PALGDI*)AccessInternalObject(PaletteSource);
if(DestPalType == PAL_INDEXED) DestPalGDI = (PALGDI*)AccessInternalObject(PaletteDest);
if(SourcePalType == PAL_INDEXED)
SourcePalGDI = (PALGDI*)AccessInternalObject((ULONG)PaletteSource);
if(DestPalType == PAL_INDEXED)
DestPalGDI = (PALGDI*)AccessInternalObject((ULONG)PaletteDest);
XlateObj->iSrcType = SourcePalType;
XlateObj->iDstType = DestPalType;
@ -189,10 +192,10 @@ XLATEOBJ *EngCreateXlate(USHORT DestPalType, USHORT SourcePalType,
return XlateObj;
}
EngDeleteXlate(XLATEOBJ *XlateObj)
VOID EngDeleteXlate(XLATEOBJ *XlateObj)
{
HPALETTE HXlate = (HPALETTE)AccessHandleFromUserObject(XlateObj);
XLATEGDI *XlateGDI = (XLATEGDI*)AccessInternalObject(HXlate);
XLATEGDI *XlateGDI = (XLATEGDI*)AccessInternalObject((ULONG)HXlate);
if(XlateGDI->translationTable!=NULL)
{
@ -201,10 +204,11 @@ EngDeleteXlate(XLATEOBJ *XlateObj)
EngFreeMem(XlateGDI);
EngFreeMem(XlateObj);
FreeGDIHandle(HXlate);
FreeGDIHandle((ULONG)HXlate);
}
ULONG *XLATEOBJ_piVector(XLATEOBJ *XlateObj)
ULONG * STDCALL
XLATEOBJ_piVector(XLATEOBJ *XlateObj)
{
XLATEGDI *XlateGDI = (XLATEGDI*)AccessInternalObjectFromUserObject(XlateObj);
@ -216,7 +220,9 @@ ULONG *XLATEOBJ_piVector(XLATEOBJ *XlateObj)
return NULL;
}
ULONG XLATEOBJ_iXlate(XLATEOBJ *XlateObj, ULONG Color)
ULONG STDCALL
XLATEOBJ_iXlate(XLATEOBJ *XlateObj,
ULONG Color)
{
PALGDI *PalGDI;
XLATEGDI *XlateGDI = (XLATEGDI*)AccessInternalObjectFromUserObject(XlateObj);
@ -231,7 +237,7 @@ ULONG XLATEOBJ_iXlate(XLATEOBJ *XlateObj, ULONG Color)
// FIXME: won't work if destination isn't indexed
// Extract the destination palette
PalGDI = (PALGDI*)AccessInternalObject(XlateGDI->DestPal);
PalGDI = (PALGDI*)AccessInternalObject((ULONG)XlateGDI->DestPal);
// Return closest match for the given RGB color
return ClosestColorMatch(Color, PalGDI->IndexedColors, PalGDI->NumColors);
@ -244,8 +250,11 @@ ULONG XLATEOBJ_iXlate(XLATEOBJ *XlateObj, ULONG Color)
return 0;
}
ULONG XLATEOBJ_cGetPalette(XLATEOBJ *XlateObj,
ULONG PalOutType, ULONG cPal, ULONG *OutPal)
ULONG STDCALL
XLATEOBJ_cGetPalette(XLATEOBJ *XlateObj,
ULONG PalOutType,
ULONG cPal,
ULONG *OutPal)
{
ULONG i;
HPALETTE HPal;
@ -263,7 +272,7 @@ ULONG XLATEOBJ_cGetPalette(XLATEOBJ *XlateObj,
HPal = XlateGDI->DestPal;
}
PalGDI = (PALGDI*)AccessInternalObject(HPal);
PalGDI = (PALGDI*)AccessInternalObject((ULONG)HPal);
RtlCopyMemory(OutPal, PalGDI->IndexedColors, sizeof(ULONG)*cPal);
return i;

View file

@ -2,10 +2,5 @@
#define __WIN32K_ENG_H
BOOL EngIntersectRect(PRECTL prcDst, PRECTL prcSrc1, PRECTL prcSrc2);
BOOL EngBitBlt(SURFOBJ *Dest, SURFOBJ *Source,
SURFOBJ *Mask, CLIPOBJ *ClipRegion,
XLATEOBJ *ColorTranslation, RECTL *DestRect,
POINTL *SourcePoint, POINTL *MaskRect,
BRUSHOBJ *Brush, POINTL *BrushOrigin, ROP4 rop4);
#endif /* __WIN32K_ENG_H */

View file

@ -0,0 +1,6 @@
#ifndef __WIN32K_PAINT_H
#define __WIN32K_PAINT_H
BOOL FillSolid(SURFOBJ *Surface, PRECTL Dimensions, ULONG iColor);
#endif /* __WIN32K_DIB_H */

View file

@ -18,7 +18,6 @@ STUB(EngCreateEvent)
STUB(EngCreatePath)
STUB(EngCreateSemaphore)
STUB(EngCreateWnd)
STUB(EngDebugBreak)
STUB(EngDeleteDriverObj)
STUB(EngDeleteEvent)
STUB(EngDeletePath)
@ -133,8 +132,4 @@ STUB(WNDOBJ_vSetConsumer)
STUB(XFORMOBJ_bApplyXform)
STUB(XFORMOBJ_iGetFloatObjXform)
STUB(XFORMOBJ_iGetXform)
STUB(_abnormal_termination)
STUB(_except_handler2)
STUB(_global_unwind2)
STUB(_local_unwind2)

View file

@ -1,4 +1,4 @@
; $Id: win32k.def,v 1.12 2001/03/20 15:06:22 ekohl Exp $
; $Id: win32k.def,v 1.13 2002/06/15 21:40:41 ekohl Exp $
;
; win32k.def
;
@ -7,44 +7,43 @@
LIBRARY win32k
EXPORTS
;W32kGetVectors
BRUSHOBJ_pvAllocRbrush
BRUSHOBJ_pvGetRbrush
BRUSHOBJ_pvAllocRbrush@8
BRUSHOBJ_pvGetRbrush@4
BRUSHOBJ_ulGetBrushColor
CLIPOBJ_bEnum
CLIPOBJ_cEnumStart
CLIPOBJ_bEnum@12
CLIPOBJ_cEnumStart@20
CLIPOBJ_ppoGetPath
EngAcquireSemaphore
EngAllocMem@12
EngAllocUserMem@8
EngAssociateSurface
EngBitBlt
EngAssociateSurface@12
EngBitBlt@44
EngCheckAbort
EngComputeGlyphSet
EngCopyBits
EngCreateBitmap
EngCreateClip
EngCreateDeviceBitmap
EngCreateDeviceSurface
EngCopyBits@24
EngCreateBitmap@24
EngCreateClip@0
EngCreateDeviceBitmap@16
EngCreateDeviceSurface@16
EngCreateDriverObj
EngCreateEvent
EngCreatePalette
EngCreatePalette@24
EngCreatePath
EngCreateSemaphore
EngCreateWnd
; EngDebugBreak = NTOSKRNL.DbgBreakPoint
EngDebugBreak
EngDebugBreak@0
EngDebugPrint@12
EngDeleteClip
EngDeleteClip@4
EngDeleteDriverObj
EngDeleteEvent
EngDeletePalette
EngDeletePalette@4
EngDeletePath
EngDeleteSemaphore
EngDeleteSurface
EngDeleteSurface@4
EngDeleteWnd
EngDeviceIoControl@28
EngEnumForms
EngEraseSurface
EngEraseSurface@12
EngFillPath
EngFindImageProcAddress
EngFindResource
@ -62,12 +61,12 @@ EngGetPrinterData
EngGetPrinterDataFileName
EngGetProcessHandle
EngGetType1FontList
EngLineTo
EngLineTo@36
EngLoadImage@4
EngLoadModule@4
EngLoadModuleForWrite
EngLockDriverObj
EngLockSurface
EngLockSurface@4
EngMapEvent
EngMapFontFile
EngMapModule
@ -76,7 +75,7 @@ EngMovePointer
EngMulDiv
EngMultiByteToUnicodeN
EngMultiByteToWideChar
EngPaint
EngPaint@20
EngProbeForRead
; EngProbeForReadAndWrite = NTOSKRNL.ProbeForWrite
EngProbeForReadAndWrite
@ -98,6 +97,7 @@ EngStretchBlt
EngStrokeAndFillPath
EngStrokePath
EngTextOut
EngTransparentBlt@32
EngUnicodeToMultiByteN
EngUnloadImage
EngUnlockDriverObj
@ -144,7 +144,7 @@ FONTOBJ_pxoGetXform
FONTOBJ_vGetInfo
HT_ComputeRGBGammaTable
HT_Get8BPPFormatPalette
PALOBJ_cGetColors
PALOBJ_cGetColors@16
PATHOBJ_bCloseFigure
PATHOBJ_bEnum
PATHOBJ_bEnumClipLines
@ -171,15 +171,11 @@ WNDOBJ_vSetConsumer
XFORMOBJ_bApplyXform
XFORMOBJ_iGetFloatObjXform
XFORMOBJ_iGetXform
XLATEOBJ_cGetPalette
XLATEOBJ_iXlate
XLATEOBJ_piVector
; _abnormal_termination = NTOSKRNL._abnormal_termination
XLATEOBJ_cGetPalette@16
XLATEOBJ_iXlate@8
XLATEOBJ_piVector@4
_abnormal_termination
; _except_handler2 = NTOSKRNL._except_handler2
_except_handler2
; _global_unwind2 = NTOSKRNL._global_unwind2
_global_unwind2
; _local_unwind2 = NTOSKRNL._local_unwind2
_local_unwind2

View file

@ -1,4 +1,4 @@
; $Id: win32k.edf,v 1.5 2001/03/20 15:06:22 ekohl Exp $
; $Id: win32k.edf,v 1.6 2002/06/15 21:40:41 ekohl Exp $
;
; win32k.def
;
@ -7,44 +7,43 @@
LIBRARY win32k
EXPORTS
;W32kGetVectors
BRUSHOBJ_pvAllocRbrush
BRUSHOBJ_pvGetRbrush
BRUSHOBJ_pvAllocRbrush=BRUSHOBJ_pvAllocRbrush@8
BRUSHOBJ_pvGetRbrush=BRUSHOBJ_pvGetRbrush@4
BRUSHOBJ_ulGetBrushColor
CLIPOBJ_bEnum
CLIPOBJ_cEnumStart
CLIPOBJ_bEnum=CLIPOBJ_bEnum@12
CLIPOBJ_cEnumStart=CLIPOBJ_cEnumStart@20
CLIPOBJ_ppoGetPath
EngAcquireSemaphore
EngAllocMem=EngAllocMem@12
EngAllocUserMem=EngAllocUserMem@8
EngAssociateSurface
EngBitBlt
EngAssociateSurface=EngAssociateSurface@12
EngBitBlt=EngBitBlt@44
EngCheckAbort
EngComputeGlyphSet
EngCopyBits
EngCreateBitmap
EngCreateClip
EngCreateDeviceBitmap
EngCreateDeviceSurface
EngCopyBits=EngCopyBits@24
EngCreateBitmap=EngCreateBitmap@24
EngCreateClip=EngCreateClip@0
EngCreateDeviceBitmap=EngCreateDeviceBitmap@16
EngCreateDeviceSurface=EngCreateDeviceSurface@16
EngCreateDriverObj
EngCreateEvent
EngCreatePalette
EngCreatePalette=EngCreatePalette@24
EngCreatePath
EngCreateSemaphore
EngCreateWnd
; EngDebugBreak = NTOSKRNL.DbgBreakPoint
EngDebugBreak
EngDebugBreak=NTOSKRNL.DbgBreakPoint
EngDebugPrint=EngDebugPrint@12
EngDeleteClip
EngDeleteClip=EngDeleteClip@4
EngDeleteDriverObj
EngDeleteEvent
EngDeletePalette
EngDeletePalette=EngDeletePalette@4
EngDeletePath
EngDeleteSemaphore
EngDeleteSurface
EngDeleteSurface=EngDeleteSurface@4
EngDeleteWnd
EngDeviceIoControl=EngDeviceIoControl@28
EngEnumForms
EngEraseSurface
EngEraseSurface=EngEraseSurface@12
EngFillPath
EngFindImageProcAddress
EngFindResource
@ -62,12 +61,12 @@ EngGetPrinterData
EngGetPrinterDataFileName
EngGetProcessHandle
EngGetType1FontList
EngLineTo
EngLineTo=EngLineTo@36
EngLoadImage=EngLoadImage@4
EngLoadModule=EngLoadModule@4
EngLoadModuleForWrite
EngLockDriverObj
EngLockSurface
EngLockSurface=EngLockSurface@4
EngMapEvent
EngMapFontFile
EngMapModule
@ -76,7 +75,7 @@ EngMovePointer
EngMulDiv
EngMultiByteToUnicodeN
EngMultiByteToWideChar
EngPaint
EngPaint=EngPaint@20
EngProbeForRead
; EngProbeForReadAndWrite = NTOSKRNL.ProbeForWrite
EngProbeForReadAndWrite
@ -98,6 +97,7 @@ EngStretchBlt
EngStrokeAndFillPath
EngStrokePath
EngTextOut
EngTransparentBlt=EngTransparentBlt@32
EngUnicodeToMultiByteN
EngUnloadImage
EngUnlockDriverObj
@ -144,7 +144,7 @@ FONTOBJ_pxoGetXform
FONTOBJ_vGetInfo
HT_ComputeRGBGammaTable
HT_Get8BPPFormatPalette
PALOBJ_cGetColors
PALOBJ_cGetColors=PALOBJ_cGetColors@16
PATHOBJ_bCloseFigure
PATHOBJ_bEnum
PATHOBJ_bEnumClipLines
@ -171,15 +171,15 @@ WNDOBJ_vSetConsumer
XFORMOBJ_bApplyXform
XFORMOBJ_iGetFloatObjXform
XFORMOBJ_iGetXform
XLATEOBJ_cGetPalette
XLATEOBJ_iXlate
XLATEOBJ_piVector
; _abnormal_termination = NTOSKRNL._abnormal_termination
_abnormal_termination
; _except_handler2 = NTOSKRNL._except_handler2
_except_handler2
; _global_unwind2 = NTOSKRNL._global_unwind2
_global_unwind2
; _local_unwind2 = NTOSKRNL._local_unwind2
_local_unwind2
XLATEOBJ_cGetPalette=XLATEOBJ_cGetPalette@16
XLATEOBJ_iXlate=XLATEOBJ_iXlate@8
XLATEOBJ_piVector=XLATEOBJ_piVector@4
_abnormal_termination=NTOSKRNL._abnormal_termination
;_abnormal_termination
_except_handler2=NTOSKRNL._except_handler2
;_except_handler2
_global_unwind2=NTOSKRNL._global_unwind2
;_global_unwind2
_local_unwind2=NTOSKRNL._local_unwind2
;_local_unwind2