| /* | |
| * Enhanced MetaFile driver dc value functions | |
| * | |
| * Copyright 1999 Huw D M Davies | |
| * | |
| */ | |
| #include "enhmetafiledrv.h" | |
| #include "debugtools.h" | |
| DEFAULT_DEBUG_CHANNEL(enhmetafile) | |
| INT EMFDRV_SaveDC( DC *dc ) | |
| { | |
| EMRSAVEDC emr; | |
| emr.emr.iType = EMR_SAVEDC; | |
| emr.emr.nSize = sizeof(emr); | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_RestoreDC( DC *dc, INT level ) | |
| { | |
| EMRRESTOREDC emr; | |
| emr.emr.iType = EMR_RESTOREDC; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.iRelative = level; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| UINT EMFDRV_SetTextAlign( DC *dc, UINT align ) | |
| { | |
| EMRSETTEXTALIGN emr; | |
| emr.emr.iType = EMR_SETTEXTALIGN; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.iMode = align; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| INT EMFDRV_SetBkMode( DC *dc, INT mode ) | |
| { | |
| EMRSETBKMODE emr; | |
| emr.emr.iType = EMR_SETBKMODE; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.iMode = mode; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| INT EMFDRV_SetROP2( DC *dc, INT rop ) | |
| { | |
| EMRSETROP2 emr; | |
| emr.emr.iType = EMR_SETROP2; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.iMode = rop; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| INT EMFDRV_SetPolyFillMode( DC *dc, INT mode ) | |
| { | |
| EMRSETPOLYFILLMODE emr; | |
| emr.emr.iType = EMR_SETPOLYFILLMODE; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.iMode = mode; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| INT EMFDRV_SetStretchBltMode( DC *dc, INT mode ) | |
| { | |
| EMRSETSTRETCHBLTMODE emr; | |
| emr.emr.iType = EMR_SETSTRETCHBLTMODE; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.iMode = mode; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| INT EMFDRV_SetMapMode( DC *dc, INT mode ) | |
| { | |
| EMRSETMAPMODE emr; | |
| emr.emr.iType = EMR_SETMAPMODE; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.iMode = mode; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| INT EMFDRV_ExcludeClipRect( DC *dc, INT left, INT top, INT right, INT bottom ) | |
| { | |
| EMREXCLUDECLIPRECT emr; | |
| emr.emr.iType = EMR_EXCLUDECLIPRECT; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.rclClip.left = left; | |
| emr.rclClip.top = top; | |
| emr.rclClip.right = right; | |
| emr.rclClip.bottom = bottom; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| INT EMFDRV_IntersectClipRect( DC *dc, INT left, INT top, INT right, INT bottom) | |
| { | |
| EMRINTERSECTCLIPRECT emr; | |
| emr.emr.iType = EMR_INTERSECTCLIPRECT; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.rclClip.left = left; | |
| emr.rclClip.top = top; | |
| emr.rclClip.right = right; | |
| emr.rclClip.bottom = bottom; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| INT EMFDRV_OffsetClipRgn( DC *dc, INT x, INT y ) | |
| { | |
| EMROFFSETCLIPRGN emr; | |
| emr.emr.iType = EMR_OFFSETCLIPRGN; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.ptlOffset.x = x; | |
| emr.ptlOffset.y = y; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| DWORD EMFDRV_SetMapperFlags( DC *dc, DWORD flags ) | |
| { | |
| EMRSETMAPPERFLAGS emr; | |
| emr.emr.iType = EMR_SETMAPPERFLAGS; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.dwFlags = flags; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_AbortPath( DC *dc ) | |
| { | |
| EMRABORTPATH emr; | |
| emr.emr.iType = EMR_ABORTPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_BeginPath( DC *dc ) | |
| { | |
| EMRBEGINPATH emr; | |
| emr.emr.iType = EMR_BEGINPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_CloseFigure( DC *dc ) | |
| { | |
| EMRCLOSEFIGURE emr; | |
| emr.emr.iType = EMR_CLOSEFIGURE; | |
| emr.emr.nSize = sizeof(emr); | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_EndPath( DC *dc ) | |
| { | |
| EMRENDPATH emr; | |
| emr.emr.iType = EMR_ENDPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_FillPath( DC *dc ) | |
| { | |
| EMRFILLPATH emr; | |
| emr.emr.iType = EMR_FILLPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| FIXME("Bounds\n"); | |
| emr.rclBounds.left = 0; | |
| emr.rclBounds.top = 0; | |
| emr.rclBounds.right = 0; | |
| emr.rclBounds.bottom = 0; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_FlattenPath( DC *dc ) | |
| { | |
| EMRFLATTENPATH emr; | |
| emr.emr.iType = EMR_FLATTENPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_SelectClipPath( DC *dc, INT iMode ) | |
| { | |
| EMRSELECTCLIPPATH emr; | |
| emr.emr.iType = EMR_SELECTCLIPPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| emr.iMode = iMode; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_StrokeAndFillPath( DC *dc ) | |
| { | |
| EMRSTROKEANDFILLPATH emr; | |
| emr.emr.iType = EMR_STROKEANDFILLPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| FIXME("Bounds\n"); | |
| emr.rclBounds.left = 0; | |
| emr.rclBounds.top = 0; | |
| emr.rclBounds.right = 0; | |
| emr.rclBounds.bottom = 0; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_StrokePath( DC *dc ) | |
| { | |
| EMRSTROKEPATH emr; | |
| emr.emr.iType = EMR_STROKEPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| FIXME("Bounds\n"); | |
| emr.rclBounds.left = 0; | |
| emr.rclBounds.top = 0; | |
| emr.rclBounds.right = 0; | |
| emr.rclBounds.bottom = 0; | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } | |
| BOOL EMFDRV_WidenPath( DC *dc ) | |
| { | |
| EMRWIDENPATH emr; | |
| emr.emr.iType = EMR_WIDENPATH; | |
| emr.emr.nSize = sizeof(emr); | |
| return EMFDRV_WriteRecord( dc, &emr.emr ); | |
| } |