From 8c3766c5e7bf63826a4c4f1064483c9821ee43e8 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 11 Mar 2011 12:03:41 +0100 Subject: [PATCH] gdi32: Move all the enhanced metafile DC setting functions to enhmfdrv/dc.c --- dlls/gdi32/Makefile.in | 1 - dlls/gdi32/enhmfdrv/dc.c | 204 +++++++++++++++++++++++++++++++++ dlls/gdi32/enhmfdrv/graphics.c | 50 -------- dlls/gdi32/enhmfdrv/mapping.c | 188 ------------------------------ 4 files changed, 204 insertions(+), 239 deletions(-) delete mode 100644 dlls/gdi32/enhmfdrv/mapping.c diff --git a/dlls/gdi32/Makefile.in b/dlls/gdi32/Makefile.in index 45740b11830..173deddb707 100644 --- a/dlls/gdi32/Makefile.in +++ b/dlls/gdi32/Makefile.in @@ -20,7 +20,6 @@ C_SRCS = \ enhmfdrv/dc.c \ enhmfdrv/graphics.c \ enhmfdrv/init.c \ - enhmfdrv/mapping.c \ enhmfdrv/objects.c \ font.c \ freetype.c \ diff --git a/dlls/gdi32/enhmfdrv/dc.c b/dlls/gdi32/enhmfdrv/dc.c index 99fe2af4cf1..e1d8fc5be0a 100644 --- a/dlls/gdi32/enhmfdrv/dc.c +++ b/dlls/gdi32/enhmfdrv/dc.c @@ -90,6 +90,33 @@ INT CDECL EMFDRV_SetBkMode( PHYSDEV dev, INT mode ) return EMFDRV_WriteRecord( dev, &emr.emr ) ? mode : 0; } +COLORREF CDECL EMFDRV_SetBkColor( PHYSDEV dev, COLORREF color ) +{ + EMRSETBKCOLOR emr; + EMFDRV_PDEVICE *physDev = (EMFDRV_PDEVICE *)dev; + + if (physDev->restoring) return color; /* don't output records during RestoreDC */ + + emr.emr.iType = EMR_SETBKCOLOR; + emr.emr.nSize = sizeof(emr); + emr.crColor = color; + return EMFDRV_WriteRecord( dev, &emr.emr ) ? color : CLR_INVALID; +} + + +COLORREF CDECL EMFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) +{ + EMRSETTEXTCOLOR emr; + EMFDRV_PDEVICE *physDev = (EMFDRV_PDEVICE *)dev; + + if (physDev->restoring) return color; /* don't output records during RestoreDC */ + + emr.emr.iType = EMR_SETTEXTCOLOR; + emr.emr.nSize = sizeof(emr); + emr.crColor = color; + return EMFDRV_WriteRecord( dev, &emr.emr ) ? color : CLR_INVALID; +} + INT CDECL EMFDRV_SetROP2( PHYSDEV dev, INT rop ) { EMRSETROP2 emr; @@ -117,6 +144,16 @@ INT CDECL EMFDRV_SetStretchBltMode( PHYSDEV dev, INT mode ) return EMFDRV_WriteRecord( dev, &emr.emr ) ? mode : 0; } +INT CDECL EMFDRV_SetArcDirection(PHYSDEV dev, INT arcDirection) +{ + EMRSETARCDIRECTION emr; + + emr.emr.iType = EMR_SETARCDIRECTION; + emr.emr.nSize = sizeof(emr); + emr.iArcDirection = arcDirection; + return EMFDRV_WriteRecord(dev, &emr.emr) ? arcDirection : 0; +} + INT CDECL EMFDRV_ExcludeClipRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) { EMREXCLUDECLIPRECT emr; @@ -178,6 +215,173 @@ INT CDECL EMFDRV_ExtSelectClipRgn( PHYSDEV dev, HRGN hrgn, INT mode ) return ret ? SIMPLEREGION : ERROR; } +INT CDECL EMFDRV_SetMapMode( PHYSDEV dev, INT mode ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetMapMode ); + EMRSETMAPMODE emr; + emr.emr.iType = EMR_SETMAPMODE; + emr.emr.nSize = sizeof(emr); + emr.iMode = mode; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; + return next->funcs->pSetMapMode( next, mode ); +} + +BOOL CDECL EMFDRV_SetViewportExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetViewportExtEx ); + EMRSETVIEWPORTEXTEX emr; + + emr.emr.iType = EMR_SETVIEWPORTEXTEX; + emr.emr.nSize = sizeof(emr); + emr.szlExtent.cx = cx; + emr.szlExtent.cy = cy; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE; + return next->funcs->pSetViewportExtEx( next, cx, cy, size ); +} + +BOOL CDECL EMFDRV_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWindowExtEx ); + EMRSETWINDOWEXTEX emr; + + emr.emr.iType = EMR_SETWINDOWEXTEX; + emr.emr.nSize = sizeof(emr); + emr.szlExtent.cx = cx; + emr.szlExtent.cy = cy; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; + return next->funcs->pSetWindowExtEx( next, cx, cy, size ); +} + +BOOL CDECL EMFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetViewportOrgEx ); + EMRSETVIEWPORTORGEX emr; + + emr.emr.iType = EMR_SETVIEWPORTORGEX; + emr.emr.nSize = sizeof(emr); + emr.ptlOrigin.x = x; + emr.ptlOrigin.y = y; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; + return next->funcs->pSetViewportOrgEx( next, x, y, pt ); +} + +BOOL CDECL EMFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWindowOrgEx ); + EMRSETWINDOWORGEX emr; + + emr.emr.iType = EMR_SETWINDOWORGEX; + emr.emr.nSize = sizeof(emr); + emr.ptlOrigin.x = x; + emr.ptlOrigin.y = y; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; + return next->funcs->pSetWindowOrgEx( next, x, y, pt ); +} + +BOOL CDECL EMFDRV_ScaleViewportExtEx( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pScaleViewportExtEx ); + EMRSCALEVIEWPORTEXTEX emr; + + emr.emr.iType = EMR_SCALEVIEWPORTEXTEX; + emr.emr.nSize = sizeof(emr); + emr.xNum = xNum; + emr.xDenom = xDenom; + emr.yNum = yNum; + emr.yDenom = yDenom; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; + return next->funcs->pScaleViewportExtEx( next, xNum, xDenom, yNum, yDenom, size ); +} + +BOOL CDECL EMFDRV_ScaleWindowExtEx( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pScaleWindowExtEx ); + EMRSCALEWINDOWEXTEX emr; + + emr.emr.iType = EMR_SCALEWINDOWEXTEX; + emr.emr.nSize = sizeof(emr); + emr.xNum = xNum; + emr.xDenom = xDenom; + emr.yNum = yNum; + emr.yDenom = yDenom; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; + return next->funcs->pScaleWindowExtEx( next, xNum, xDenom, yNum, yDenom, size ); +} + +DWORD CDECL EMFDRV_SetLayout( PHYSDEV dev, DWORD layout ) +{ + EMRSETLAYOUT emr; + + emr.emr.iType = EMR_SETLAYOUT; + emr.emr.nSize = sizeof(emr); + emr.iMode = layout; + return EMFDRV_WriteRecord( dev, &emr.emr ) ? layout : GDI_ERROR; +} + +BOOL CDECL EMFDRV_SetWorldTransform( PHYSDEV dev, const XFORM *xform) +{ + EMRSETWORLDTRANSFORM emr; + + emr.emr.iType = EMR_SETWORLDTRANSFORM; + emr.emr.nSize = sizeof(emr); + emr.xform = *xform; + + return EMFDRV_WriteRecord( dev, &emr.emr ); +} + +BOOL CDECL EMFDRV_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, DWORD mode) +{ + EMRMODIFYWORLDTRANSFORM emr; + + emr.emr.iType = EMR_MODIFYWORLDTRANSFORM; + emr.emr.nSize = sizeof(emr); + emr.xform = *xform; + emr.iMode = mode; + + return EMFDRV_WriteRecord( dev, &emr.emr ); +} + +BOOL CDECL EMFDRV_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetViewportOrgEx ); + EMRSETVIEWPORTORGEX emr; + EMFDRV_PDEVICE* physDev = (EMFDRV_PDEVICE*)dev; + + GetViewportOrgEx(physDev->hdc, pt); + + emr.emr.iType = EMR_SETVIEWPORTORGEX; + emr.emr.nSize = sizeof(emr); + emr.ptlOrigin.x = pt->x + x; + emr.ptlOrigin.y = pt->y + y; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; + return next->funcs->pOffsetViewportOrgEx( next, x, y, pt ); +} + +BOOL CDECL EMFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) +{ + PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetWindowOrgEx ); + EMRSETWINDOWORGEX emr; + EMFDRV_PDEVICE* physDev = (EMFDRV_PDEVICE*)dev; + + GetWindowOrgEx(physDev->hdc, pt); + + emr.emr.iType = EMR_SETWINDOWORGEX; + emr.emr.nSize = sizeof(emr); + emr.ptlOrigin.x = pt->x + x; + emr.ptlOrigin.y = pt->y + y; + + if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; + return next->funcs->pOffsetWindowOrgEx( next, x, y, pt ); +} + DWORD CDECL EMFDRV_SetMapperFlags( PHYSDEV dev, DWORD flags ) { EMRSETMAPPERFLAGS emr; diff --git a/dlls/gdi32/enhmfdrv/graphics.c b/dlls/gdi32/enhmfdrv/graphics.c index 5926d622e7d..361a3b0fdb3 100644 --- a/dlls/gdi32/enhmfdrv/graphics.c +++ b/dlls/gdi32/enhmfdrv/graphics.c @@ -677,43 +677,6 @@ EMFDRV_InvertRgn( PHYSDEV dev, HRGN hrgn ) return EMFDRV_PaintInvertRgn( dev, hrgn, EMR_INVERTRGN ); } -/********************************************************************** - * EMFDRV_SetBkColor - */ -COLORREF CDECL -EMFDRV_SetBkColor( PHYSDEV dev, COLORREF color ) -{ - EMRSETBKCOLOR emr; - EMFDRV_PDEVICE *physDev = (EMFDRV_PDEVICE *)dev; - - if (physDev->restoring) return color; /* don't output records during RestoreDC */ - - emr.emr.iType = EMR_SETBKCOLOR; - emr.emr.nSize = sizeof(emr); - emr.crColor = color; - - return EMFDRV_WriteRecord( dev, &emr.emr ) ? color : CLR_INVALID; -} - - -/********************************************************************** - * EMFDRV_SetTextColor - */ -COLORREF CDECL -EMFDRV_SetTextColor( PHYSDEV dev, COLORREF color ) -{ - EMRSETTEXTCOLOR emr; - EMFDRV_PDEVICE *physDev = (EMFDRV_PDEVICE *)dev; - - if (physDev->restoring) return color; /* don't output records during RestoreDC */ - - emr.emr.iType = EMR_SETTEXTCOLOR; - emr.emr.nSize = sizeof(emr); - emr.crColor = color; - - return EMFDRV_WriteRecord( dev, &emr.emr ) ? color : CLR_INVALID; -} - /********************************************************************** * EMFDRV_ExtTextOut */ @@ -855,16 +818,3 @@ no_bounds: HeapFree( GetProcessHeap(), 0, pemr ); return ret; } - -/********************************************************************** - * EMFDRV_SetArcDirection - */ -INT CDECL EMFDRV_SetArcDirection(PHYSDEV dev, INT arcDirection) -{ - EMRSETARCDIRECTION emr; - - emr.emr.iType = EMR_SETARCDIRECTION; - emr.emr.nSize = sizeof(emr); - emr.iArcDirection = arcDirection; - return EMFDRV_WriteRecord(dev, &emr.emr) ? arcDirection : 0; -} diff --git a/dlls/gdi32/enhmfdrv/mapping.c b/dlls/gdi32/enhmfdrv/mapping.c deleted file mode 100644 index e566e01bb0f..00000000000 --- a/dlls/gdi32/enhmfdrv/mapping.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Enhanced MetaFile driver mapping functions - * - * Copyright 1999 Huw D M Davies - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include "enhmfdrv/enhmetafiledrv.h" - -INT CDECL EMFDRV_SetMapMode( PHYSDEV dev, INT mode ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetMapMode ); - EMRSETMAPMODE emr; - emr.emr.iType = EMR_SETMAPMODE; - emr.emr.nSize = sizeof(emr); - emr.iMode = mode; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; - return next->funcs->pSetMapMode( next, mode ); -} - -BOOL CDECL EMFDRV_SetViewportExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetViewportExtEx ); - EMRSETVIEWPORTEXTEX emr; - - emr.emr.iType = EMR_SETVIEWPORTEXTEX; - emr.emr.nSize = sizeof(emr); - emr.szlExtent.cx = cx; - emr.szlExtent.cy = cy; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return FALSE; - return next->funcs->pSetViewportExtEx( next, cx, cy, size ); -} - -BOOL CDECL EMFDRV_SetWindowExtEx( PHYSDEV dev, INT cx, INT cy, SIZE *size ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWindowExtEx ); - EMRSETWINDOWEXTEX emr; - - emr.emr.iType = EMR_SETWINDOWEXTEX; - emr.emr.nSize = sizeof(emr); - emr.szlExtent.cx = cx; - emr.szlExtent.cy = cy; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; - return next->funcs->pSetWindowExtEx( next, cx, cy, size ); -} - -BOOL CDECL EMFDRV_SetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetViewportOrgEx ); - EMRSETVIEWPORTORGEX emr; - - emr.emr.iType = EMR_SETVIEWPORTORGEX; - emr.emr.nSize = sizeof(emr); - emr.ptlOrigin.x = x; - emr.ptlOrigin.y = y; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; - return next->funcs->pSetViewportOrgEx( next, x, y, pt ); -} - -BOOL CDECL EMFDRV_SetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pSetWindowOrgEx ); - EMRSETWINDOWORGEX emr; - - emr.emr.iType = EMR_SETWINDOWORGEX; - emr.emr.nSize = sizeof(emr); - emr.ptlOrigin.x = x; - emr.ptlOrigin.y = y; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; - return next->funcs->pSetWindowOrgEx( next, x, y, pt ); -} - -BOOL CDECL EMFDRV_ScaleViewportExtEx( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pScaleViewportExtEx ); - EMRSCALEVIEWPORTEXTEX emr; - - emr.emr.iType = EMR_SCALEVIEWPORTEXTEX; - emr.emr.nSize = sizeof(emr); - emr.xNum = xNum; - emr.xDenom = xDenom; - emr.yNum = yNum; - emr.yDenom = yDenom; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; - return next->funcs->pScaleViewportExtEx( next, xNum, xDenom, yNum, yDenom, size ); -} - -BOOL CDECL EMFDRV_ScaleWindowExtEx( PHYSDEV dev, INT xNum, INT xDenom, INT yNum, INT yDenom, SIZE *size ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pScaleWindowExtEx ); - EMRSCALEWINDOWEXTEX emr; - - emr.emr.iType = EMR_SCALEWINDOWEXTEX; - emr.emr.nSize = sizeof(emr); - emr.xNum = xNum; - emr.xDenom = xDenom; - emr.yNum = yNum; - emr.yDenom = yDenom; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; - return next->funcs->pScaleWindowExtEx( next, xNum, xDenom, yNum, yDenom, size ); -} - -DWORD CDECL EMFDRV_SetLayout( PHYSDEV dev, DWORD layout ) -{ - EMRSETLAYOUT emr; - - emr.emr.iType = EMR_SETLAYOUT; - emr.emr.nSize = sizeof(emr); - emr.iMode = layout; - return EMFDRV_WriteRecord( dev, &emr.emr ) ? layout : GDI_ERROR; -} - -BOOL CDECL EMFDRV_SetWorldTransform( PHYSDEV dev, const XFORM *xform) -{ - EMRSETWORLDTRANSFORM emr; - - emr.emr.iType = EMR_SETWORLDTRANSFORM; - emr.emr.nSize = sizeof(emr); - emr.xform = *xform; - - return EMFDRV_WriteRecord( dev, &emr.emr ); -} - -BOOL CDECL EMFDRV_ModifyWorldTransform( PHYSDEV dev, const XFORM *xform, DWORD mode) -{ - EMRMODIFYWORLDTRANSFORM emr; - - emr.emr.iType = EMR_MODIFYWORLDTRANSFORM; - emr.emr.nSize = sizeof(emr); - emr.xform = *xform; - emr.iMode = mode; - - return EMFDRV_WriteRecord( dev, &emr.emr ); -} - -BOOL CDECL EMFDRV_OffsetViewportOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetViewportOrgEx ); - EMRSETVIEWPORTORGEX emr; - EMFDRV_PDEVICE* physDev = (EMFDRV_PDEVICE*)dev; - - GetViewportOrgEx(physDev->hdc, pt); - - emr.emr.iType = EMR_SETVIEWPORTORGEX; - emr.emr.nSize = sizeof(emr); - emr.ptlOrigin.x = pt->x + x; - emr.ptlOrigin.y = pt->y + y; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; - return next->funcs->pOffsetViewportOrgEx( next, x, y, pt ); -} - -BOOL CDECL EMFDRV_OffsetWindowOrgEx( PHYSDEV dev, INT x, INT y, POINT *pt ) -{ - PHYSDEV next = GET_NEXT_PHYSDEV( dev, pOffsetWindowOrgEx ); - EMRSETWINDOWORGEX emr; - EMFDRV_PDEVICE* physDev = (EMFDRV_PDEVICE*)dev; - - GetWindowOrgEx(physDev->hdc, pt); - - emr.emr.iType = EMR_SETWINDOWORGEX; - emr.emr.nSize = sizeof(emr); - emr.ptlOrigin.x = pt->x + x; - emr.ptlOrigin.y = pt->y + y; - - if (!EMFDRV_WriteRecord( dev, &emr.emr )) return 0; - return next->funcs->pOffsetWindowOrgEx( next, x, y, pt ); -}