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,17 +930,18 @@ DrvStartDoc(IN PSURFOBJ SurfObj,
IN DWORD JobID);
BOOL STDCALL
DrvStartPage(IN PSURFOBJ SurfObj);
BOOL DrvStretchBlt(IN PSURFOBJ DestSurface,
IN PSURFOBJ SrcSurface,
IN PSURFOBJ MaskSurface,
IN PCLIPOBJ ClipObj,
IN PXLATEOBJ XLateObj,
IN PCOLORADJUSTMENT CA,
IN PPOINTL HTOrg,
IN PRECTL Dest,
IN PRECTL Src,
IN PPOINTL Mask,
IN ULONG Mode);
BOOL STDCALL
DrvStretchBlt(IN PSURFOBJ DestSurface,
IN PSURFOBJ SrcSurface,
IN PSURFOBJ MaskSurface,
IN PCLIPOBJ ClipObj,
IN PXLATEOBJ XLateObj,
IN PCOLORADJUSTMENT CA,
IN PPOINTL HTOrg,
IN PRECTL Dest,
IN PRECTL Src,
IN PPOINTL Mask,
IN ULONG Mode);
BOOL STDCALL
DrvStrokeAndFillPath(IN PSURFOBJ SurfObj,
IN PPATHOBJ PathObj,
@ -988,18 +989,26 @@ BOOL STDCALL
DrvUnloadFontFile(IN ULONG FileNumber);
/* DDI --> GDI calls */
PVOID BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
IN ULONG ObjSize);
PVOID BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj);
BOOL CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj,
IN ULONG ObjSize,
OUT ULONG *EnumRects);
ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj,
IN BOOL ShouldDoAll,
IN ULONG ClipType,
IN ULONG BuildOrder,
IN ULONG MaxRects);
PPATHOBJ CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj);
PVOID STDCALL
BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
IN ULONG ObjSize);
PVOID STDCALL
BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj);
BOOL STDCALL
CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj,
IN ULONG ObjSize,
OUT ULONG *EnumRects);
ULONG STDCALL
CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj,
IN BOOL ShouldDoAll,
IN ULONG ClipType,
IN ULONG BuildOrder,
IN ULONG MaxRects);
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,
IN ULONG ObjSize)
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,19 +84,24 @@ 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,
IN ULONG MaxRects)
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,8 +117,10 @@ ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj, IN BOOL ShouldDoAll,
return ClipGDI->EnumRects.c;
}
BOOL CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj, IN ULONG ObjSize,
OUT ULONG *EnumRects)
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,9 +67,12 @@ BOOL EngPaintRgn(SURFOBJ *Surface, CLIPOBJ *ClipRegion, ULONG iColor, MIX Mix,
}
}
BOOL EngPaint(IN SURFOBJ *Surface, IN CLIPOBJ *ClipRegion,
IN BRUSHOBJ *Brush, IN POINTL *BrushOrigin,
IN MIX Mix)
BOOL STDCALL
EngPaint(IN SURFOBJ *Surface,
IN CLIPOBJ *ClipRegion,
IN BRUSHOBJ *Brush,
IN POINTL *BrushOrigin,
IN MIX Mix)
{
BOOLEAN ret;
SURFGDI *SurfGDI;
@ -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,14 +9,16 @@
*/
#include <ddk/winddi.h>
#include <include/object.h>
#include "objects.h"
HPALETTE EngCreatePalette(ULONG Mode,
ULONG NumColors,
PULONG *Colors, // FIXME: This was implemented with ULONG *Colors!!
ULONG Red,
ULONG Green,
ULONG Blue)
HPALETTE STDCALL
EngCreatePalette(ULONG Mode,
ULONG NumColors,
PULONG *Colors, // FIXME: This was implemented with ULONG *Colors!!
ULONG Red,
ULONG Green,
ULONG Blue)
{
HPALETTE NewPalette;
PALOBJ *PalObj;
@ -50,23 +52,27 @@ 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 *PaletteEntry)
ULONG STDCALL
PALOBJ_cGetColors(PALOBJ *PalObj,
ULONG Start,
ULONG Colors,
ULONG *PaletteEntry)
{
ULONG i, entry;
PALGDI *PalGDI;

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,23 +66,27 @@ 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,
IN LONG Width,
IN ULONG Format,
IN ULONG Flags,
IN PVOID Bits)
HBITMAP STDCALL
EngCreateBitmap(IN SIZEL Size,
IN LONG Width,
IN ULONG Format,
IN ULONG Flags,
IN PVOID Bits)
{
HBITMAP NewBitmap;
SURFOBJ *SurfObj;
@ -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
@ -154,14 +154,14 @@ PATHOBJ_bPolyLineTo
PATHOBJ_vEnumStart
PATHOBJ_vEnumStartClipLines
PATHOBJ_vGetBounds
RtlAnsiCharToUnicodeChar = NTOSKRNL.RtlAnsiCharToUnicodeChar
RtlMultiByteToUnicodeN = NTOSKRNL.RtlMultiByteToUnicodeN
RtlRaiseException = NTOSKRNL.RtlRaiseException
RtlUnicodeToMultiByteN = NTOSKRNL.RtlUnicodeToMultiByteN
RtlUnicodeToMultiByteSize = NTOSKRNL.RtlUnicodeToMultiByteSize
RtlUnwind = NTOSKRNL.RtlUnwind
RtlUpcaseUnicodeChar = NTOSKRNL.RtlUpcaseUnicodeChar
RtlUpcaseUnicodeToMultiByteN = NTOSKRNL.RtlUpcaseUnicodeToMultiByteN
RtlAnsiCharToUnicodeChar=NTOSKRNL.RtlAnsiCharToUnicodeChar
RtlMultiByteToUnicodeN=NTOSKRNL.RtlMultiByteToUnicodeN
RtlRaiseException=NTOSKRNL.RtlRaiseException
RtlUnicodeToMultiByteN=NTOSKRNL.RtlUnicodeToMultiByteN
RtlUnicodeToMultiByteSize=NTOSKRNL.RtlUnicodeToMultiByteSize
RtlUnwind=NTOSKRNL.RtlUnwind
RtlUpcaseUnicodeChar=NTOSKRNL.RtlUpcaseUnicodeChar
RtlUpcaseUnicodeToMultiByteN=NTOSKRNL.RtlUpcaseUnicodeToMultiByteN
STROBJ_bEnum
STROBJ_dwGetCodePage
STROBJ_vEnumStart
@ -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