mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
3rd FIN.
svn path=/trunk/; revision=30374
This commit is contained in:
parent
98f75aa494
commit
f0e8f2df37
6 changed files with 59 additions and 52 deletions
|
@ -505,9 +505,7 @@ typedef struct _DC
|
||||||
DC_ATTR Dc_Attr;
|
DC_ATTR Dc_Attr;
|
||||||
HDC hNext;
|
HDC hNext;
|
||||||
HDC hPrev;
|
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;
|
UNICODE_STRING DriverName;
|
||||||
|
|
||||||
CLIPOBJ *CombinedClip;
|
CLIPOBJ *CombinedClip;
|
||||||
|
|
|
@ -36,16 +36,25 @@ typedef struct _GDIPOINTER /* should stay private to ENG */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
HANDLE Handle;
|
HANDLE Handle;
|
||||||
|
PVOID pvEntry;
|
||||||
|
ULONG lucExcLock;
|
||||||
|
ULONG Tid;
|
||||||
|
|
||||||
|
PERESOURCE_XP hsemDevLock;
|
||||||
|
|
||||||
|
PVOID pfnSync;
|
||||||
|
|
||||||
DHPDEV PDev;
|
DHPDEV PDev;
|
||||||
DEVMODEW DMW;
|
DEVMODEW DMW;
|
||||||
HSURF FillPatterns[HS_DDI_MAX];
|
HSURF FillPatterns[HS_DDI_MAX];
|
||||||
DEVINFO DevInfo;
|
DEVINFO DevInfo;
|
||||||
GDIINFO GDIInfo;
|
GDIINFO GDIInfo;
|
||||||
|
|
||||||
PFILE_OBJECT VideoFileObject;
|
HANDLE hSpooler;
|
||||||
BOOLEAN PreparedDriver;
|
|
||||||
ULONG DisplayNumber;
|
ULONG DisplayNumber;
|
||||||
|
|
||||||
|
PFILE_OBJECT VideoFileObject;
|
||||||
|
BOOLEAN PreparedDriver;
|
||||||
GDIPOINTER Pointer;
|
GDIPOINTER Pointer;
|
||||||
|
|
||||||
/* Stuff to keep track of software cursors; win32k gdi part */
|
/* Stuff to keep track of software cursors; win32k gdi part */
|
||||||
|
|
|
@ -167,8 +167,8 @@ UserGetSystemMetrics(ULONG Index)
|
||||||
ScreenDC = DC_LockDc(ScreenDCHandle);
|
ScreenDC = DC_LockDc(ScreenDCHandle);
|
||||||
if (NULL != ScreenDC)
|
if (NULL != ScreenDC)
|
||||||
{
|
{
|
||||||
Width = ScreenDC->GDIInfo->ulHorzRes;
|
Width = ((PGDIDEVICE)ScreenDC->pPDev)->GDIInfo.ulHorzRes;
|
||||||
Height = ScreenDC->GDIInfo->ulVertRes;
|
Height = ((PGDIDEVICE)ScreenDC->pPDev)->GDIInfo.ulVertRes;
|
||||||
DC_UnlockDc(ScreenDC);
|
DC_UnlockDc(ScreenDC);
|
||||||
}
|
}
|
||||||
NtGdiDeleteObjectApp(ScreenDCHandle);
|
NtGdiDeleteObjectApp(ScreenDCHandle);
|
||||||
|
|
|
@ -451,7 +451,7 @@ IntGetSystemPaletteEntries(HDC hDC,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Ret = dc->GDIInfo->ulNumPalReg;
|
Ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulNumPalReg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,8 +37,8 @@
|
||||||
void FASTCALL
|
void FASTCALL
|
||||||
IntFixIsotropicMapping(PDC dc)
|
IntFixIsotropicMapping(PDC dc)
|
||||||
{
|
{
|
||||||
ULONG xdim = EngMulDiv(dc->Dc_Attr.szlViewportExt.cx, dc->GDIInfo->ulHorzSize, dc->GDIInfo->ulHorzRes) / dc->Dc_Attr.szlWindowExt.cx;
|
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, dc->GDIInfo->ulVertSize, dc->GDIInfo->ulVertRes) / dc->Dc_Attr.szlWindowExt.cy;
|
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)
|
if (xdim > ydim)
|
||||||
{
|
{
|
||||||
|
@ -639,38 +639,38 @@ IntGdiSetMapMode(PDC dc,
|
||||||
|
|
||||||
case MM_LOMETRIC:
|
case MM_LOMETRIC:
|
||||||
case MM_ISOTROPIC:
|
case MM_ISOTROPIC:
|
||||||
dc->Dc_Attr.szlWindowExt.cx = dc->GDIInfo->ulHorzSize * 10;
|
dc->Dc_Attr.szlWindowExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize * 10;
|
||||||
dc->Dc_Attr.szlWindowExt.cy = dc->GDIInfo->ulVertSize * 10;
|
dc->Dc_Attr.szlWindowExt.cy = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize * 10;
|
||||||
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
|
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
|
||||||
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
|
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MM_HIMETRIC:
|
case MM_HIMETRIC:
|
||||||
dc->Dc_Attr.szlWindowExt.cx = dc->GDIInfo->ulHorzSize * 100;
|
dc->Dc_Attr.szlWindowExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize * 100;
|
||||||
dc->Dc_Attr.szlWindowExt.cy = dc->GDIInfo->ulVertSize * 100;
|
dc->Dc_Attr.szlWindowExt.cy = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize * 100;
|
||||||
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
|
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
|
||||||
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
|
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MM_LOENGLISH:
|
case MM_LOENGLISH:
|
||||||
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(1000, dc->GDIInfo->ulHorzSize, 254);
|
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(1000, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize, 254);
|
||||||
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(1000, dc->GDIInfo->ulVertSize, 254);
|
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(1000, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize, 254);
|
||||||
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
|
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
|
||||||
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
|
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MM_HIENGLISH:
|
case MM_HIENGLISH:
|
||||||
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(10000, dc->GDIInfo->ulHorzSize, 254);
|
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(10000, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize, 254);
|
||||||
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(10000, dc->GDIInfo->ulVertSize, 254);
|
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(10000, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize, 254);
|
||||||
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
|
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
|
||||||
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
|
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MM_TWIPS:
|
case MM_TWIPS:
|
||||||
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(14400, dc->GDIInfo->ulHorzSize, 254);
|
dc->Dc_Attr.szlWindowExt.cx = EngMulDiv(14400, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize, 254);
|
||||||
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(14400, dc->GDIInfo->ulVertSize, 254);
|
dc->Dc_Attr.szlWindowExt.cy = EngMulDiv(14400, ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize, 254);
|
||||||
dc->Dc_Attr.szlViewportExt.cx = dc->GDIInfo->ulHorzRes;
|
dc->Dc_Attr.szlViewportExt.cx = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
|
||||||
dc->Dc_Attr.szlViewportExt.cy = -dc->GDIInfo->ulVertRes;
|
dc->Dc_Attr.szlViewportExt.cy = -((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MM_ANISOTROPIC:
|
case MM_ANISOTROPIC:
|
||||||
|
|
|
@ -210,7 +210,7 @@ NtGdiCreateCompatibleDC(HDC hDC)
|
||||||
NewDC->DC_Type = DC_Type;
|
NewDC->DC_Type = DC_Type;
|
||||||
|
|
||||||
NewDC->PDev = OrigDC->PDev;
|
NewDC->PDev = OrigDC->PDev;
|
||||||
NewDC->GDIInfo = OrigDC->GDIInfo;
|
|
||||||
NewDC->w.bitsPerPixel = OrigDC->w.bitsPerPixel;
|
NewDC->w.bitsPerPixel = OrigDC->w.bitsPerPixel;
|
||||||
|
|
||||||
/* DriverName is copied in the AllocDC routine */
|
/* DriverName is copied in the AllocDC routine */
|
||||||
|
@ -903,13 +903,13 @@ IntGdiCreateDC(PUNICODE_STRING Driver,
|
||||||
NewDC->DC_Type = DC_TYPE_DIRECT;
|
NewDC->DC_Type = DC_TYPE_DIRECT;
|
||||||
NewDC->IsIC = CreateAsIC;
|
NewDC->IsIC = CreateAsIC;
|
||||||
|
|
||||||
NewDC->GDIInfo = &PrimarySurface.GDIInfo;
|
|
||||||
NewDC->PDev = PrimarySurface.PDev;
|
NewDC->PDev = PrimarySurface.PDev;
|
||||||
if(pUMdhpdev) pUMdhpdev = NewDC->PDev;
|
if(pUMdhpdev) pUMdhpdev = NewDC->PDev;
|
||||||
NewDC->pPDev = (PVOID)&PrimarySurface;
|
NewDC->pPDev = (PVOID)&PrimarySurface;
|
||||||
NewDC->w.hBitmap = PrimarySurface.Handle;
|
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);
|
DPRINT("Bits per pel: %u\n", NewDC->w.bitsPerPixel);
|
||||||
|
|
||||||
if (! CreateAsIC)
|
if (! CreateAsIC)
|
||||||
|
@ -920,8 +920,8 @@ IntGdiCreateDC(PUNICODE_STRING Driver,
|
||||||
|
|
||||||
DC_UnlockDc( NewDC );
|
DC_UnlockDc( NewDC );
|
||||||
|
|
||||||
hVisRgn = NtGdiCreateRectRgn(0, 0, NewDC->GDIInfo->ulHorzRes,
|
hVisRgn = NtGdiCreateRectRgn(0, 0, ((PGDIDEVICE)NewDC->pPDev)->GDIInfo.ulHorzRes,
|
||||||
NewDC->GDIInfo->ulVertRes);
|
((PGDIDEVICE)NewDC->pPDev)->GDIInfo.ulVertRes);
|
||||||
IntGdiSelectVisRgn(hNewDC, hVisRgn);
|
IntGdiSelectVisRgn(hNewDC, hVisRgn);
|
||||||
NtGdiDeleteObject(hVisRgn);
|
NtGdiDeleteObject(hVisRgn);
|
||||||
|
|
||||||
|
@ -1536,43 +1536,43 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
|
||||||
switch (Index)
|
switch (Index)
|
||||||
{
|
{
|
||||||
case DRIVERVERSION:
|
case DRIVERVERSION:
|
||||||
ret = dc->GDIInfo->ulVersion;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVersion;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TECHNOLOGY:
|
case TECHNOLOGY:
|
||||||
ret = dc->GDIInfo->ulTechnology;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulTechnology;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HORZSIZE:
|
case HORZSIZE:
|
||||||
ret = dc->GDIInfo->ulHorzSize;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzSize;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VERTSIZE:
|
case VERTSIZE:
|
||||||
ret = dc->GDIInfo->ulVertSize;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertSize;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HORZRES:
|
case HORZRES:
|
||||||
ret = dc->GDIInfo->ulHorzRes;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulHorzRes;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VERTRES:
|
case VERTRES:
|
||||||
ret = dc->GDIInfo->ulVertRes;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulVertRes;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOGPIXELSX:
|
case LOGPIXELSX:
|
||||||
ret = dc->GDIInfo->ulLogPixelsX;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulLogPixelsX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LOGPIXELSY:
|
case LOGPIXELSY:
|
||||||
ret = dc->GDIInfo->ulLogPixelsY;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulLogPixelsY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BITSPIXEL:
|
case BITSPIXEL:
|
||||||
ret = dc->GDIInfo->cBitsPixel;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.cBitsPixel;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PLANES:
|
case PLANES:
|
||||||
ret = dc->GDIInfo->cPlanes;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.cPlanes;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NUMBRUSHES:
|
case NUMBRUSHES:
|
||||||
|
@ -1588,19 +1588,19 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NUMCOLORS:
|
case NUMCOLORS:
|
||||||
ret = dc->GDIInfo->ulNumColors;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulNumColors;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASPECTX:
|
case ASPECTX:
|
||||||
ret = dc->GDIInfo->ulAspectX;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulAspectX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASPECTY:
|
case ASPECTY:
|
||||||
ret = dc->GDIInfo->ulAspectY;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulAspectY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASPECTXY:
|
case ASPECTXY:
|
||||||
ret = dc->GDIInfo->ulAspectXY;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulAspectXY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PDEVICESIZE:
|
case PDEVICESIZE:
|
||||||
|
@ -1612,7 +1612,7 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SIZEPALETTE:
|
case SIZEPALETTE:
|
||||||
ret = dc->GDIInfo->ulNumPalReg; /* FIXME not sure */
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.ulNumPalReg; /* FIXME not sure */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NUMRESERVED:
|
case NUMRESERVED:
|
||||||
|
@ -1694,7 +1694,7 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RASTERCAPS:
|
case RASTERCAPS:
|
||||||
ret = dc->GDIInfo->flRaster;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.flRaster;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CURVECAPS:
|
case CURVECAPS:
|
||||||
|
@ -1710,7 +1710,7 @@ IntGdiGetDeviceCaps(PDC dc, INT Index)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TEXTCAPS:
|
case TEXTCAPS:
|
||||||
ret = dc->GDIInfo->flTextCaps;
|
ret = ((PGDIDEVICE)dc->pPDev)->GDIInfo.flTextCaps;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue