Added the DFCS_{HOT,TRANSPARENT} definitions.
[wine/gsoc_dplay.git] / dlls / wineps / bitblt.c
blob99ab2bc0d5c0cd093b37ab947f0e48aada0ad106
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 "gdi.h"
22 #include "psdrv.h"
23 #include "wine/debug.h"
24 #include "winbase.h"
26 WINE_DEFAULT_DEBUG_CHANNEL(psdrv);
29 /***********************************************************************
31 * PSDRV_PatBlt
33 BOOL PSDRV_PatBlt(PSDRV_PDEVICE *physDev, INT x, INT y, INT width, INT height, DWORD dwRop)
35 DC *dc = physDev->dc;
37 switch(dwRop) {
38 case PATCOPY:
39 PSDRV_WriteGSave(physDev);
40 PSDRV_WriteRectangle(physDev, XLPTODP(dc, x), YLPTODP(dc, y),
41 XLSTODS(dc, width), YLSTODS(dc, height));
42 PSDRV_Brush(physDev, FALSE);
43 PSDRV_WriteGRestore(physDev);
44 return TRUE;
46 case BLACKNESS:
47 case WHITENESS:
49 PSCOLOR pscol;
51 PSDRV_WriteGSave(physDev);
52 PSDRV_WriteRectangle(physDev, XLPTODP(dc, x), YLPTODP(dc, y),
53 XLSTODS(dc, width), YLSTODS(dc, height));
54 PSDRV_CreateColor( physDev, &pscol, (dwRop == BLACKNESS) ?
55 RGB(0,0,0) : RGB(0xff,0xff,0xff) );
56 PSDRV_WriteSetColor(physDev, &pscol);
57 PSDRV_WriteFill(physDev);
58 PSDRV_WriteGRestore(physDev);
59 return TRUE;
61 default:
62 FIXME("Unsupported rop %ld\n", dwRop);
63 return FALSE;