mirror of
https://github.com/reactos/reactos.git
synced 2024-07-05 12:15:46 +00:00
Remove DC_GET_VAL macro and friends. They were defining functions that we didn't use, except 4, but those were also quite useless, as the only returned a value from the dc structure that you pass in.
same for IntGetGraphicsMode. Also remove IntGetViewportExtEx and replace it with DC_vUpdateViewportExt svn path=/trunk/; revision=40201
This commit is contained in:
parent
c5a8c1281c
commit
0a1914e0b7
|
@ -10,10 +10,6 @@
|
|||
#define XForm2MatrixS(m, x) XFORMOBJ_iSetXform((XFORMOBJ*)m, (XFORML*)x)
|
||||
#define MatrixS2XForm(x, m) XFORMOBJ_iGetXform((XFORMOBJ*)m, (XFORML*)x)
|
||||
|
||||
int
|
||||
FASTCALL
|
||||
IntGetGraphicsMode ( PDC dc );
|
||||
|
||||
int APIENTRY IntGdiSetMapMode(PDC, int);
|
||||
|
||||
BOOL
|
||||
|
|
|
@ -248,16 +248,12 @@ BOOL FASTCALL IntGdiDeleteDC(HDC, BOOL);
|
|||
|
||||
VOID FASTCALL DC_UpdateXforms(PDC dc);
|
||||
BOOL FASTCALL DC_InvertXform(const XFORM *xformSrc, XFORM *xformDest);
|
||||
VOID FASTCALL DC_vUpdateViewportExt(PDC pdc);
|
||||
|
||||
BOOL FASTCALL DCU_SyncDcAttrtoUser(PDC);
|
||||
BOOL FASTCALL DCU_SynchDcAttrtoUser(HDC);
|
||||
VOID FASTCALL DCU_SetDcUndeletable(HDC);
|
||||
|
||||
VOID FASTCALL IntGetViewportExtEx(PDC dc, LPSIZE pt);
|
||||
VOID FASTCALL IntGetViewportOrgEx(PDC dc, LPPOINT pt);
|
||||
VOID FASTCALL IntGetWindowExtEx(PDC dc, LPSIZE pt);
|
||||
VOID FASTCALL IntGetWindowOrgEx(PDC dc, LPPOINT pt);
|
||||
|
||||
COLORREF FASTCALL IntGdiSetBkColor (HDC hDC, COLORREF Color);
|
||||
INT FASTCALL IntGdiSetBkMode(HDC hDC, INT backgroundMode);
|
||||
COLORREF APIENTRY IntGdiGetBkColor(HDC hDC);
|
||||
|
|
|
@ -119,17 +119,6 @@ BOOL APIENTRY NtGdiCombineTransform(
|
|||
return Ret;
|
||||
}
|
||||
|
||||
// FIXME: remove me!
|
||||
int
|
||||
FASTCALL
|
||||
IntGetGraphicsMode(PDC dc)
|
||||
{
|
||||
PDC_ATTR pdcattr;
|
||||
ASSERT(dc);
|
||||
pdcattr = dc->pdcattr;
|
||||
return pdcattr->iGraphicsMode;
|
||||
}
|
||||
|
||||
// FIXME: Don't use floating point in the kernel
|
||||
BOOL
|
||||
FASTCALL
|
||||
|
@ -262,7 +251,8 @@ NtGdiTransformPoints(
|
|||
|
||||
Size = Count * sizeof(POINT);
|
||||
|
||||
Points = (LPPOINT)ExAllocatePoolWithTag(PagedPool, Size, TAG_COORD);
|
||||
// FIXME: It would be wise to have a small stack buffer as optimization
|
||||
Points = ExAllocatePoolWithTag(PagedPool, Size, TAG_COORD);
|
||||
if (!Points)
|
||||
{
|
||||
DC_UnlockDc(dc);
|
||||
|
@ -1129,7 +1119,7 @@ GdiSetDCOrg(HDC hDC, LONG Left, LONG Top, PRECTL prc)
|
|||
DC_UnlockDc(pdc);
|
||||
}
|
||||
|
||||
|
||||
// FIXME: remove me
|
||||
BOOL FASTCALL
|
||||
IntGdiGetDCOrg(PDC pDc, PPOINTL ppt)
|
||||
{
|
||||
|
@ -1137,6 +1127,7 @@ IntGdiGetDCOrg(PDC pDc, PPOINTL ppt)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
// FIXME: remove me
|
||||
BOOL APIENTRY
|
||||
GdiGetDCOrgEx(HDC hDC, PPOINTL ppt, PRECTL prc)
|
||||
{
|
||||
|
@ -1152,14 +1143,11 @@ GdiGetDCOrgEx(HDC hDC, PPOINTL ppt, PRECTL prc)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL FASTCALL
|
||||
IntGetAspectRatioFilter(PDC pDC, LPSIZE AspectRatio)
|
||||
static
|
||||
VOID FASTCALL
|
||||
DC_vGetAspectRatioFilter(PDC pDC, LPSIZE AspectRatio)
|
||||
{
|
||||
PDC_ATTR pdcattr;
|
||||
|
||||
pdcattr = pDC->pdcattr;
|
||||
|
||||
if ( pdcattr->flFontMapper & 1 ) // TRUE assume 1.
|
||||
if (pDC->pdcattr->flFontMapper & 1) // TRUE assume 1.
|
||||
{
|
||||
// "This specifies that Windows should only match fonts that have the
|
||||
// same aspect ratio as the display.", Programming Windows, Fifth Ed.
|
||||
|
@ -1171,12 +1159,11 @@ IntGetAspectRatioFilter(PDC pDC, LPSIZE AspectRatio)
|
|||
AspectRatio->cx = 0;
|
||||
AspectRatio->cy = 0;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
VOID
|
||||
FASTCALL
|
||||
IntGetViewportExtEx(PDC pdc, LPSIZE pSize)
|
||||
DC_vUpdateViewportExt(PDC pdc)
|
||||
{
|
||||
PDC_ATTR pdcattr;
|
||||
|
||||
|
@ -1195,9 +1182,6 @@ IntGetViewportExtEx(PDC pdc, LPSIZE pSize)
|
|||
/* Update xforms, CHECKME: really done here? */
|
||||
DC_UpdateXforms(pdc);
|
||||
}
|
||||
|
||||
/* Copy the viewport extension */
|
||||
*pSize = pdcattr->szlViewportExt;
|
||||
}
|
||||
|
||||
BOOL APIENTRY
|
||||
|
@ -1207,7 +1191,7 @@ NtGdiGetDCPoint(
|
|||
PPOINTL Point)
|
||||
{
|
||||
BOOL Ret = TRUE;
|
||||
DC *dc;
|
||||
DC *pdc;
|
||||
POINTL SafePoint;
|
||||
SIZE Size;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
|
@ -1218,10 +1202,8 @@ NtGdiGetDCPoint(
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
RtlZeroMemory(&SafePoint, sizeof(POINT));
|
||||
|
||||
dc = DC_LockDc(hDC);
|
||||
if (!dc)
|
||||
pdc = DC_LockDc(hDC);
|
||||
if (!pdc)
|
||||
{
|
||||
SetLastWin32Error(ERROR_INVALID_HANDLE);
|
||||
return FALSE;
|
||||
|
@ -1230,31 +1212,30 @@ NtGdiGetDCPoint(
|
|||
switch (iPoint)
|
||||
{
|
||||
case GdiGetViewPortExt:
|
||||
IntGetViewportExtEx(dc, &Size);
|
||||
SafePoint.x = Size.cx;
|
||||
SafePoint.y = Size.cy;
|
||||
DC_vUpdateViewportExt(pdc);
|
||||
SafePoint.x = pdc->pdcattr->szlViewportExt.cx;
|
||||
SafePoint.y = pdc->pdcattr->szlViewportExt.cy;
|
||||
break;
|
||||
|
||||
case GdiGetWindowExt:
|
||||
IntGetWindowExtEx(dc, &Size);
|
||||
SafePoint.x = Size.cx;
|
||||
SafePoint.y = Size.cy;
|
||||
SafePoint.x = pdc->pdcattr->szlWindowExt.cx;
|
||||
SafePoint.y = pdc->pdcattr->szlWindowExt.cy;
|
||||
break;
|
||||
|
||||
case GdiGetViewPortOrg:
|
||||
IntGetViewportOrgEx(dc, &SafePoint);
|
||||
SafePoint = pdc->pdcattr->ptlViewportOrg;
|
||||
break;
|
||||
|
||||
case GdiGetWindowOrg:
|
||||
IntGetWindowOrgEx(dc, &SafePoint);
|
||||
SafePoint = pdc->pdcattr->ptlWindowOrg;
|
||||
break;
|
||||
|
||||
case GdiGetDCOrg:
|
||||
Ret = IntGdiGetDCOrg(dc, &SafePoint);
|
||||
SafePoint = pdc->ptlDCOrig;
|
||||
break;
|
||||
|
||||
case GdiGetAspectRatioFilter:
|
||||
Ret = IntGetAspectRatioFilter(dc, &Size);
|
||||
DC_vGetAspectRatioFilter(pdc, &Size);
|
||||
SafePoint.x = Size.cx;
|
||||
SafePoint.y = Size.cy;
|
||||
break;
|
||||
|
@ -1269,9 +1250,7 @@ NtGdiGetDCPoint(
|
|||
{
|
||||
_SEH2_TRY
|
||||
{
|
||||
ProbeForWrite(Point,
|
||||
sizeof(POINT),
|
||||
1);
|
||||
ProbeForWrite(Point, sizeof(POINT), 1);
|
||||
*Point = SafePoint;
|
||||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
|
@ -1279,16 +1258,15 @@ NtGdiGetDCPoint(
|
|||
Status = _SEH2_GetExceptionCode();
|
||||
}
|
||||
_SEH2_END;
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastNtError(Status);
|
||||
Ret = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
SetLastNtError(Status);
|
||||
DC_UnlockDc(dc);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
DC_UnlockDc(dc);
|
||||
DC_UnlockDc(pdc);
|
||||
return Ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,126 +4,6 @@
|
|||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/*
|
||||
* DC device-independent Get/SetXXX functions
|
||||
* (RJJ) swiped from WINE
|
||||
*/
|
||||
|
||||
#define DC_GET_VAL( func_type, func_name, dc_field ) \
|
||||
func_type APIENTRY func_name( HDC hdc ) \
|
||||
{ \
|
||||
func_type ft; \
|
||||
PDC dc = DC_LockDc( hdc ); \
|
||||
PDC_ATTR pdcattr; \
|
||||
if (!dc) \
|
||||
{ \
|
||||
SetLastWin32Error(ERROR_INVALID_HANDLE); \
|
||||
return 0; \
|
||||
} \
|
||||
pdcattr = dc->pdcattr; \
|
||||
ft = pdcattr->dc_field; \
|
||||
DC_UnlockDc(dc); \
|
||||
return ft; \
|
||||
}
|
||||
|
||||
/* DC_GET_VAL_EX is used to define functions returning a POINT or a SIZE. It is
|
||||
* important that the function has the right signature, for the implementation
|
||||
* we can do whatever we want.
|
||||
*/
|
||||
#define DC_GET_VAL_EX( FuncName, ret_x, ret_y, type, ax, ay ) \
|
||||
VOID FASTCALL Int##FuncName ( PDC dc, LP##type pt) \
|
||||
{ \
|
||||
PDC_ATTR pdcattr; \
|
||||
ASSERT(dc); \
|
||||
ASSERT(pt); \
|
||||
pdcattr = dc->pdcattr; \
|
||||
pt->ax = pdcattr->ret_x; \
|
||||
pt->ay = pdcattr->ret_y; \
|
||||
}
|
||||
|
||||
#if 0
|
||||
BOOL APIENTRY NtGdi##FuncName ( HDC hdc, LP##type pt ) \
|
||||
{ \
|
||||
NTSTATUS Status = STATUS_SUCCESS; \
|
||||
type Safept; \
|
||||
PDC dc; \
|
||||
if(!pt) \
|
||||
{ \
|
||||
SetLastWin32Error(ERROR_INVALID_PARAMETER); \
|
||||
return FALSE; \
|
||||
} \
|
||||
if(!(dc = DC_LockDc(hdc))) \
|
||||
{ \
|
||||
SetLastWin32Error(ERROR_INVALID_HANDLE); \
|
||||
return FALSE; \
|
||||
} \
|
||||
Int##FuncName( dc, &Safept); \
|
||||
DC_UnlockDc(dc); \
|
||||
_SEH2_TRY \
|
||||
{ \
|
||||
ProbeForWrite(pt, \
|
||||
sizeof( type ), \
|
||||
1); \
|
||||
*pt = Safept; \
|
||||
} \
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) \
|
||||
{ \
|
||||
Status = _SEH2_GetExceptionCode(); \
|
||||
} \
|
||||
_SEH2_END; \
|
||||
if(!NT_SUCCESS(Status)) \
|
||||
{ \
|
||||
SetLastNtError(Status); \
|
||||
return FALSE; \
|
||||
} \
|
||||
return TRUE; \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define DC_SET_MODE( func_name, dc_field, min_val, max_val ) \
|
||||
INT APIENTRY func_name( HDC hdc, INT mode ) \
|
||||
{ \
|
||||
INT prevMode; \
|
||||
PDC dc; \
|
||||
PDC_ATTR pdcattr; \
|
||||
if ((mode < min_val) || (mode > max_val)) \
|
||||
{ \
|
||||
SetLastWin32Error(ERROR_INVALID_PARAMETER); \
|
||||
return 0; \
|
||||
} \
|
||||
dc = DC_LockDc ( hdc ); \
|
||||
if ( !dc ) \
|
||||
{ \
|
||||
SetLastWin32Error(ERROR_INVALID_HANDLE); \
|
||||
return 0; \
|
||||
} \
|
||||
pdcattr = dc->pdcattr; \
|
||||
prevMode = pdcattr->dc_field; \
|
||||
pdcattr->dc_field = mode; \
|
||||
DC_UnlockDc ( dc ); \
|
||||
return prevMode; \
|
||||
}
|
||||
|
||||
|
||||
DC_GET_VAL( INT, IntGdiGetMapMode, iMapMode )
|
||||
DC_GET_VAL( INT, IntGdiGetPolyFillMode, jFillMode )
|
||||
DC_GET_VAL( COLORREF, IntGdiGetBkColor, crBackgroundClr )
|
||||
DC_GET_VAL( INT, IntGdiGetBkMode, jBkMode )
|
||||
DC_GET_VAL( INT, IntGdiGetROP2, jROP2 )
|
||||
DC_GET_VAL( INT, IntGdiGetStretchBltMode, jStretchBltMode )
|
||||
DC_GET_VAL( UINT, IntGdiGetTextAlign, lTextAlign )
|
||||
DC_GET_VAL( COLORREF, IntGdiGetTextColor, crForegroundClr )
|
||||
|
||||
DC_GET_VAL_EX( GetViewportOrgEx, ptlViewportOrg.x, ptlViewportOrg.y, POINT, x, y )
|
||||
DC_GET_VAL_EX( GetWindowExtEx, szlWindowExt.cx, szlWindowExt.cy, SIZE, cx, cy )
|
||||
DC_GET_VAL_EX( GetWindowOrgEx, ptlWindowOrg.x, ptlWindowOrg.y, POINT, x, y )
|
||||
|
||||
DC_SET_MODE( IntGdiSetPolyFillMode, jFillMode, ALTERNATE, WINDING )
|
||||
DC_SET_MODE( IntGdiSetROP2, jROP2, R2_BLACK, R2_WHITE )
|
||||
DC_SET_MODE( IntGdiSetStretchBltMode, jStretchBltMode, BLACKONWHITE, HALFTONE )
|
||||
|
||||
|
||||
|
||||
COLORREF FASTCALL
|
||||
IntGdiSetBkColor(HDC hDC, COLORREF color)
|
||||
{
|
||||
|
|
|
@ -566,7 +566,7 @@ IntRectangle(PDC dc,
|
|||
DestRect.bottom += dc->ptlDCOrig.y;
|
||||
|
||||
/* In GM_COMPATIBLE, don't include bottom and right edges */
|
||||
if (IntGetGraphicsMode(dc) == GM_COMPATIBLE)
|
||||
if (pdcattr->iGraphicsMode == GM_COMPATIBLE)
|
||||
{
|
||||
DestRect.right--;
|
||||
DestRect.bottom--;
|
||||
|
|
|
@ -350,7 +350,7 @@ PATH_Rectangle ( PDC dc, INT x1, INT y1, INT x2, INT y2 )
|
|||
}
|
||||
|
||||
/* In GM_COMPATIBLE, don't include bottom and right edges */
|
||||
if ( IntGetGraphicsMode(dc) == GM_COMPATIBLE )
|
||||
if (dc->pdcattr->iGraphicsMode == GM_COMPATIBLE)
|
||||
{
|
||||
corners[1].x--;
|
||||
corners[1].y--;
|
||||
|
@ -606,7 +606,7 @@ PATH_Arc ( PDC dc, INT x1, INT y1, INT x2, INT y2,
|
|||
}
|
||||
|
||||
/* In GM_COMPATIBLE, don't include bottom and right edges */
|
||||
if ( IntGetGraphicsMode(dc) == GM_COMPATIBLE )
|
||||
if (dc->pdcattr->iGraphicsMode == GM_COMPATIBLE )
|
||||
{
|
||||
corners[1].x--;
|
||||
corners[1].y--;
|
||||
|
@ -1343,11 +1343,13 @@ BOOL FASTCALL PATH_StrokePath(DC *dc, PPATH pPath)
|
|||
|
||||
/* Save the mapping mode info */
|
||||
mapMode = pdcattr->iMapMode;
|
||||
IntGetViewportExtEx(dc, &szViewportExt);
|
||||
IntGetViewportOrgEx(dc, &ptViewportOrg);
|
||||
IntGetWindowExtEx(dc, &szWindowExt);
|
||||
IntGetWindowOrgEx(dc, &ptWindowOrg);
|
||||
|
||||
|
||||
DC_vUpdateViewportExt(dc);
|
||||
szViewportExt = dc->pdcattr->szlViewportExt;
|
||||
ptViewportOrg = dc->pdcattr->ptlViewportOrg;
|
||||
szWindowExt = dc->pdcattr->szlWindowExt;
|
||||
ptWindowOrg = dc->pdcattr->ptlWindowOrg;
|
||||
|
||||
MatrixS2XForm(&xform, &dc->dclevel.mxWorldToPage);
|
||||
|
||||
/* Set MM_TEXT */
|
||||
|
|
Loading…
Reference in a new issue