Release 20030408.
[wine/gsoc-2012-control.git] / dlls / wineps / bitblt.c
blobf19f3d0a6ca14f1ffaa3a268c496d4112cb568fd
1 /*
2 * PostScript driver BitBlt, StretchBlt and PatBlt
4 * Copyright 1999 Huw D M Davies
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #include "psdrv.h"
22 #include "wine/debug.h"
23 #include "winbase.h"
25 WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
28 /***********************************************************************
30 * PSDRV_PatBlt
32 BOOL PSDRV_PatBlt(PSDRV_PDEVICE *physDev, INT x, INT y, INT width, INT height, DWORD dwRop)
34 POINT pt[2];
36 pt[0].x = x;
37 pt[0].y = y;
38 pt[1].x = x + width;
39 pt[1].y = y + height;
40 LPtoDP( physDev->hdc, pt, 2 );
42 switch(dwRop) {
43 case PATCOPY:
44 PSDRV_WriteGSave(physDev);
45 PSDRV_WriteRectangle(physDev, pt[0].x, pt[0].y, pt[1].x - pt[0].x, pt[1].y - pt[0].y );
46 PSDRV_Brush(physDev, FALSE);
47 PSDRV_WriteGRestore(physDev);
48 return TRUE;
50 case BLACKNESS:
51 case WHITENESS:
53 PSCOLOR pscol;
55 PSDRV_WriteGSave(physDev);
56 PSDRV_WriteRectangle(physDev, pt[0].x, pt[0].y, pt[1].x - pt[0].x, pt[1].y - pt[0].y );
57 PSDRV_CreateColor( physDev, &pscol, (dwRop == BLACKNESS) ?
58 RGB(0,0,0) : RGB(0xff,0xff,0xff) );
59 PSDRV_WriteSetColor(physDev, &pscol);
60 PSDRV_WriteFill(physDev);
61 PSDRV_WriteGRestore(physDev);
62 return TRUE;
64 default:
65 FIXME("Unsupported rop %ld\n", dwRop);
66 return FALSE;