svn path=/trunk/; revision=30374
This commit is contained in:
James Tabor 2007-11-12 06:43:44 +00:00
parent 98f75aa494
commit f0e8f2df37
6 changed files with 59 additions and 52 deletions

View file

@ -505,9 +505,7 @@ typedef struct _DC
DC_ATTR Dc_Attr;
HDC hNext;
HDC hPrev;
// Old tymerz! Cant code? So just Haxzorcise it!
// How many pointers to devices do we need?
PGDIINFO GDIInfo; // In GDIDEVICE
UNICODE_STRING DriverName;
CLIPOBJ *CombinedClip;

View file

@ -36,16 +36,25 @@ typedef struct _GDIPOINTER /* should stay private to ENG */
typedef struct
{
HANDLE Handle;
PVOID pvEntry;
ULONG lucExcLock;
ULONG Tid;
PERESOURCE_XP hsemDevLock;
PVOID pfnSync;
DHPDEV PDev;
DEVMODEW DMW;
HSURF FillPatterns[HS_DDI_MAX];
DEVINFO DevInfo;
GDIINFO GDIInfo;
PFILE_OBJECT VideoFileObject;
BOOLEAN PreparedDriver;
HANDLE hSpooler;
ULONG DisplayNumber;
PFILE_OBJECT VideoFileObject;
BOOLEAN PreparedDriver;
GDIPOINTER Pointer;
/* Stuff to keep track of software cursors; win32k gdi part */

View file

@ -167,8 +167,8 @@ UserGetSystemMetrics(ULONG Index)
ScreenDC = DC_LockDc(ScreenDCHandle);
if (NULL != ScreenDC)
{
Width = ScreenDC->GDIInfo->ulHorzRes;
Height = ScreenDC->GDIInfo->ulVertRes;
Width = ((PGDIDEVICE)ScreenDC->pPDev)->GDIInfo.ulHorzRes;
Height = ((PGDIDEVICE)ScreenDC->pPDev)->GDIInfo.ulVertRes;
DC_UnlockDc(ScreenDC);
}
NtGdiDeleteObjectApp(ScreenDCHandle);

View file

@ -451,7 +451,7 @@ IntGetSystemPaletteEntries(HDC hDC,
}
else
{
Ret = dc->GDIInfo->ulNumPalReg;
Ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulNumPalReg;
}
}

View file

@ -37,8 +37,8 @@
void FASTCALL
IntFixIsotropicMapping(PDC dc)
{
ULONG xdim = EngMulDiv(dc->Dc_Attr.szlViewportExt.cx, dc->GDIInfo->ulHorzSize, dc->GDIInfo->ulHorzRes) / dc->Dc_Attr.szlWindowExt.cx;
ULONG ydim = EngMulDiv(dc->Dc_Attr.szlViewportExt.cy, dc->GDIInfo->ulVertSize, dc->GDIInfo->ulVertRes) / dc->Dc_Attr.szlWindowExt.cy;
ULONG xdim = EngMulDiv(dc->Dc_Attr.szlViewportExt.cx, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes) / dc->Dc_Attr.szlWindowExt.cx;
ULONG ydim = EngMulDiv(dc->Dc_Attr.szlViewportExt.cy, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes) / dc->Dc_Attr.szlWindowExt.cy;
if (xdim > ydim)
{
@ -639,38 +639,38 @@ IntGdiSetMapMode(PDC dc,
case MM_LOMETRIC:
case MM_ISOTROPIC:
dc->Dc_Attr.szlWindowExt.cx = dc->GDIInfo->ulHorzSize * 10;
dc->Dc_Attr.szlWindowExt.cy = dc->GDIInfo->ulVertSize * 10;
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
dc->Dc_Attr.szlWindowExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize * 10;
dc->Dc_Attr.szlWindowExt.cy = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize * 10;
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
break;
case MM_HIMETRIC:
dc->Dc_Attr.szlWindowExt.cx = dc->GDIInfo->ulHorzSize * 100;
dc->Dc_Attr.szlWindowExt.cy = dc->GDIInfo->ulVertSize * 100;
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
dc->Dc_Attr.szlWindowExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize * 100;
dc->Dc_Attr.szlWindowExt.cy = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize * 100;
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
break;
case MM_LOENGLISH:
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(1000, dc->GDIInfo->ulHorzSize, 254);
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(1000, dc->GDIInfo->ulVertSize, 254);
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(1000, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize, 254);
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(1000, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize, 254);
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
break;
case MM_HIENGLISH:
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(10000, dc->GDIInfo->ulHorzSize, 254);
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(10000, dc->GDIInfo->ulVertSize, 254);
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(10000, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize, 254);
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(10000, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize, 254);
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
break;
case MM_TWIPS:
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(14400, dc->GDIInfo->ulHorzSize, 254);
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(14400, dc->GDIInfo->ulVertSize, 254);
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(14400, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize, 254);
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(14400, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize, 254);
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
break;
case MM_ANISOTROPIC:

View file

@ -210,7 +210,7 @@ NtGdiCreateCompatibleDC(HDC hDC)
NewDC->DC_Type = DC_Type;
NewDC->PDev = OrigDC->PDev;
NewDC->GDIInfo = OrigDC->GDIInfo;
NewDC->w.bitsPerPixel = OrigDC->w.bitsPerPixel;
/* DriverName is copied in the AllocDC routine */
@ -903,13 +903,13 @@ IntGdiCreateDC(PUNICODE_STRING Driver,
NewDC->DC_Type = DC_TYPE_DIRECT;
NewDC->IsIC = CreateAsIC;
NewDC->GDIInfo = &PrimarySurface.GDIInfo;
NewDC->PDev = PrimarySurface.PDev;
if(pUMdhpdev) pUMdhpdev = NewDC->PDev;
NewDC->pPDev = (PVOID)&PrimarySurface;
NewDC->w.hBitmap = PrimarySurface.Handle;
NewDC->w.bitsPerPixel = NewDC->GDIInfo->cBitsPixel * NewDC->GDIInfo->cPlanes;
NewDC->w.bitsPerPixel = ((PGDIDEVICE)NewDC->pPDev)->GDIInfo.cBitsPixel *
((PGDIDEVICE)NewDC->pPDev)->GDIInfo.cPlanes;
DPRINT("Bits per pel: %u\n", NewDC->w.bitsPerPixel);
if (! CreateAsIC)
@ -920,8 +920,8 @@ IntGdiCreateDC(PUNICODE_STRING Driver,
DC_UnlockDc( NewDC );
hVisRgn = NtGdiCreateRectRgn(0, 0, NewDC->GDIInfo->ulHorzRes,
NewDC->GDIInfo->ulVertRes);
hVisRgn = NtGdiCreateRectRgn(0, 0, ((PGDIDEVICE)NewDC->pPDev)->GDIInfo.ulHorzRes,
((PGDIDEVICE)NewDC->pPDev)->GDIInfo.ulVertRes);
IntGdiSelectVisRgn(hNewDC, hVisRgn);
NtGdiDeleteObject(hVisRgn);
@ -1536,43 +1536,43 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
switch (Index)
{
case DRIVERVERSION:
ret = dc->GDIInfo->ulVersion;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVersion;
break;
case TECHNOLOGY:
ret = dc->GDIInfo->ulTechnology;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulTechnology;
break;
case HORZSIZE:
ret = dc->GDIInfo->ulHorzSize;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize;
break;
case VERTSIZE:
ret = dc->GDIInfo->ulVertSize;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize;
break;
case HORZRES:
ret = dc->GDIInfo->ulHorzRes;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
break;
case VERTRES:
ret = dc->GDIInfo->ulVertRes;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
break;
case LOGPIXELSX:
ret = dc->GDIInfo->ulLogPixelsX;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulLogPixelsX;
break;
case LOGPIXELSY:
ret = dc->GDIInfo->ulLogPixelsY;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulLogPixelsY;
break;
case BITSPIXEL:
ret = dc->GDIInfo->cBitsPixel;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.cBitsPixel;
break;
case PLANES:
ret = dc->GDIInfo->cPlanes;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.cPlanes;
break;
case NUMBRUSHES:
@ -1588,19 +1588,19 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
break;
case NUMCOLORS:
ret = dc->GDIInfo->ulNumColors;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulNumColors;
break;
case ASPECTX:
ret = dc->GDIInfo->ulAspectX;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulAspectX;
break;
case ASPECTY:
ret = dc->GDIInfo->ulAspectY;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulAspectY;
break;
case ASPECTXY:
ret = dc->GDIInfo->ulAspectXY;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulAspectXY;
break;
case PDEVICESIZE:
@ -1612,7 +1612,7 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
break;
case SIZEPALETTE:
ret = dc->GDIInfo->ulNumPalReg; /* FIXME not sure */
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulNumPalReg; /* FIXME not sure */
break;
case NUMRESERVED:
@ -1694,7 +1694,7 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
break;
case RASTERCAPS:
ret = dc->GDIInfo->flRaster;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.flRaster;
break;
case CURVECAPS:
@ -1710,7 +1710,7 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
break;
case TEXTCAPS:
ret = dc->GDIInfo->flTextCaps;
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.flTextCaps;
break;
default: